int length = strlen(src);
char *structSpace = malloc(sizeof(String) + length + 1);
String *string = (String*) structSpace;
int *string = (int*) structSpace;
Run Code Online (Sandbox Code Playgroud)
*我创建了一个名为String的结构
因为malloc返回一个指向void的指针,即它只是分配内存块而不考虑将存储在那里的数据.在C++中,您返回的void*不会隐式地转换为您的类型的指针.在您的示例中,您还没有转换malloc返回的内容.Malloc返回了一个void*,它被隐式地转换为char*,但是在下一行你...好吧,它再也没有多大意义了.