gpt4 book ai didi

检查结构中的指针是否为 NULL

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:32 25 4
gpt4 key购买 nike

我在检查我的结构中的指针是否为空时遇到了一些问题,这是我的代码:

zone* z = malloc(sizeof(zone));
z->cases = malloc(sizeof(Case)*300);

for(i = 0; i < 300; i++)
{
Case* c = z->cases[i];

if(c->fourmilier) // HERE IS RAISE SEGMENTATION FAULT
{
if(read( &nbTypeFourmib, sizeof( unsigned char))==-1) {
exit(EXIT_FAILURE);
}
}
}

我的结构:

typedef struct {
unsigned short foodSpawnfreq;
unsigned short foodUnit;
unsigned char sourceFood;
Case** cases;
TypeFourmi** TypeFourmi;
TypeFourmi** TypeBibibte;
} zone;

typedef struct{
fourmiliere* fourmilier;
bibite* bibit;
fourmis* fourmi;
char obstacle;
} Case;

最佳答案

您将 case 的类型指定为 Case**。但是,您正在为其分配一个 Case*

你需要做的是改变:

z->cases = malloc(sizeof(Case)*300);

为了...

z->cases = malloc(sizeof(Case*)*300);

在你的循环中......

z->cases[i] = malloc(sizeof(Case));

// initialise data

Case* c = z->cases[i];

关于检查结构中的指针是否为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37069428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com