两个指针的Calloc导致崩溃

时间:2019-05-22 13:16:49

标签: c dynamic dynamic-memory-allocation realloc calloc

我遇到了这个问题,我声明了两个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():下一个大小无效 一些修复建议?或者我必须发布整个代码。

0 个答案:

没有答案