#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct node
{
char *arr;
struct node *next;
} node;
int main()
{
char *word = (char *)malloc(sizeof(char) * 20);
strcpy(word, "jon jones");
node *sentence;
sentence->arr = word; //Problem here
printf("%s", sentence->arr);
return 0;
}
我试图动态分配一个字符数组。在其中放置一个字符串,然后使节点的数据元素指向字符数组。当我运行程序时,出现了段错误。我怀疑这是我在上面标记的那一行。我不明白的是,我使句子-> arr指向单词数组的第一个元素。为什么会这样崩溃?提前致谢。
您正在使用指向节点的指针,但是尚未分配该节点。用 : node sentence; sentence.arr = word; printf("%s", sentence.arr);
应该更好。您也可以使用gdb找出引起故障的行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句