今天我在努力修复一段代码,然后我碰巧找到了类似于以下内容的东西:
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没有为它分配足够的内存空间,导致代码出现了很多内存错误。实际上,它只为整个struct
分配了20字节
的内存。有没有一种方法可以解决这个问题,而不需要将char*
转换成像char word[50]
这样的形式?
char
向量。 - JackCColeman