我有两个不同的结构,它们有一个共同的变量名.如何指定一个不会导致分段错误的值?
struct observer *obs;
obs->next = NULL;
struct sightings *sights;
sights->next = NULL;
Run Code Online (Sandbox Code Playgroud)
上面的代码导致分段错误.这可以避免吗?
谢谢
您正在获得段错误,因为您从未为这些指针分配有效值.它与next它们之间共享的字段名称无关.
[更新以添加,以回应评论:]
如果你想要一个你没有通过malloc(或类似)分配的列表的虚拟元素,那么你可以做类似的事情:
struct observer dummyHead = { .next = NULL };
struct observer *obs = &dummyHead;
Run Code Online (Sandbox Code Playgroud)
如果您使用C:
struct observer* obs = malloc(sizeof(*obs));
struct sightings* sights = malloc(sizeof(*sights));
Run Code Online (Sandbox Code Playgroud)
如果您使用的是C++:
observer* obs = new observer();
sightings* sights = new sightings();
Run Code Online (Sandbox Code Playgroud)
当你完成它们时,不要忘记free或delete分别指出.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |