C 程序在为字符串赋值后崩溃



对C 来说相对较新,看不到我在这里做错了什么,这段代码在分配第 3 个字符串后崩溃:

QW_Be *sentence = (QW_Be*)malloc(sizeof(QW_Be*));
sentence->questionword->word = words[0];
sentence->verb->word = words[1];
sentence->subject->word = words[2]; //crashes here ?

单词是一个字符 *[ ],下面是"句子"的结构:

typedef struct QW_Be{
Word *questionword;
Word *verb;
Word *subject;
Word *rest[];
} QW_Be;

这是"单词"的结构:

typedef struct Word{
char *word;
word_type type;
char *context;
} Word;

如果您需要更多信息,请询问!

您应该分配结构的大小,而不是指向结构的指针的大小:

QW_Be *sentence = (QW_Be*)malloc(sizeof(QW_Be));

如果您在字符串的赋值中崩溃,则可能是您在内存中不属于您的位置分配值。此外,请确保始终声明字符串需要多少内存,并在正确的位置分配值。

相关内容

  • 没有找到相关文章

最新更新