我有檢查,如果指針在我的結構是空的一些問題,這是我的代碼:檢查指針爲NULL
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;
謝謝:)它是確定:) – pilout
這將是一個簡單得多改變類型'案例**'來'Case *',並使用'Case * c =&z-> cases [i];'代替。 – user694733
@ user694733是的,但很難說這個代碼的最終目標是什麼,所以我只是用直接路徑 – OMGtechy