在c中分配结构成员时出现分段错误
的名称时,我在 c 中有两个结构
struct data{
char *name;
};
struct lst{
struct lst *next;
struct table *data;
};
当我尝试分配像
l->data->name = d->name; 这样 printf("%s",l->数据->名称);
它给出了分段错误。那么是因为只读内存还是其他原因造成的呢?
好的,我解决了问题:) 我已经完成了:
l->data = d; d 已经有名字了:) 谢谢大家
I have two structure in c
struct data{
char *name;
};
struct lst{
struct lst *next;
struct table *data;
};
when I'm trying to assign a name like
l->data->name = d->name;
printf("%s",l->data->name);
it gives segmentation fault. So is it because read-only memory or caused by another reason ?
ok I solved the problem : )
I've done :
l->data = d;
d has the name already :) thanks all
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在执行导致分段违规的指令之前,插入:
并查看哪一个设置为 NULL(或无效值)。
您的分段违规几乎肯定是由未初始化的指针引起的。
Just before you do that segmentation-violation-causing instruction, insert:
and see which one is set to NULL (or an invalid value).
Your segmentation violation is almost certainly caused by an uninitialized pointer.
我可能是由指向无效区域的成员引起的。
I can be caused by a member pointing into an invalid zone.
l->data
很可能为 NULLl->data
is most likely NULL