在c中分配结构成员时的分段错误

iva*_*123 0 c segmentation-fault

我在c中有两个结构

struct data{
  char *name;
};

struct lst{
   struct lst *next;
   struct table *data;
};
Run Code Online (Sandbox Code Playgroud)

当我试图指定一个名字时

l-> data-> name = d-> name; 的printf( "%S",1->数据 - >名);

它给出了分段错误.那是因为只读内存还是由其他原因造成的?

好吧我解决了问题:)我做了:

l-> data = d; d已经有了这个名字:)谢谢大家

pax*_*blo 6

在您执行导致分段违规的指令之前,插入:

printf( "%p\n", l);
printf( "%p\n", l->data);
printf( "%p\n", d);
printf( "%p\n", d->name);
Run Code Online (Sandbox Code Playgroud)

并查看哪一个设置为NULL(或无效值).

您的分段违规几乎肯定是由未初始化的指针引起的.