我今天正在努力修复代码,然后我遇到了类似的东西:
typedef struct {
int a;
int b;
int c;
int d;
char* word;
} mystruct;
int main(int argc, char **argv){
mystruct* structptr = malloc(sizeof(mystruct));
if (structptr==NULL) {
printf("ERROR!")
...
}
...
free(structptr);
return 0;
}
代码给出了很多内存错误,因为这char* word
是一个可变长度的字符串,而 malloc 没有为它分配足够的内存。实际上它只是20 Bytes
为整体分配struct
。有没有办法解决这个问题,而不会变成char*
类似的东西char word[50]
?