我遇到了这个问题,我声明了两个typedef结构的全局指针:
#define PASSEGGERI 10
#define VOLI 5
#define STRINGA 30
typedef struct{
int giorno;
int mese;
int anno;
}data;
typedef struct{
char nome[STRINGA];
char cognome[STRINGA];
data dataNascita;
char nazionalita [STRINGA];
char idDocumento[DOCUMENTO];
}passeggero;
typedef struct
{
char codiceVolo[4];
char partenza[STRINGA];
char destinazione[STRINGA];
int postiDisponibili;
data dataVolo;
int oraVolo;
char compagnia[STRINGA];
}volo;
passeggero* passeggeri;
volo* voli;
我主要使用“ calloc”分配指针:
passeggeri = calloc(PASSEGGERI, sizeof(passeggero));
voli = calloc(VOLI, sizeof(volo));
然后,使用函数,我使用“ realloc”增加指针的大小:
void aggiungiPasseggero()
{
++nuoviPasseggeri;
passeggeri = realloc(passeggeri, sizeof(passeggero) * nuoviPasseggeri);
}
void aggiungiVolo()
{
++nuoviVoli;
voli = realloc(voli, sizeof(volo) * nuoviVoli);
}
作为全局变量:
int nuoviPasseggeri = PASSEGGERI;
int nuoviVoli = VOLI;
有什么问题吗?有了这段代码,程序崩溃了,如果我只使用一个指针,程序就可以工作。谢谢。
编辑: 错误:realloc():下一个大小无效 一些修复建议?或者我必须发布整个代码。