Ae, Thiago, eu enviei meu programa ao professor e ele me mostrou meu erro. Veja se você não fez a mesma coisa:
Prof. José Coelho de Pina:
o seu programa não alocou o número certo de bytes para as estruturas
dos tipos CelRegiao e CelPixel.
----------------------------------------------------------------
Para inserir uma nova região:
CelRegiao *nova;
/* regiao = (CelRegiao *) mallocSafe(sizeof(regiao)); ERRO */
o certo é
regiao = (CelRegiao *) mallocSafe(sizeof(*regiao)); ou
regiao = (CelRegiao *) mallocSafe(sizeof *regiao); ou
regiao = (CelRegiao *) mallocSafe(sizeof(CelRegiao)); nas aulas tenho feito assim
------------------------------
Ao inserir um pixel
CelPixel *pixel;
/* pixel = (CelPixel *) mallocSafe(sizeof(pixel)); ERRO */
o certo é
pixel = (CelPixel *) mallocSafe(sizeof(*pixel)); ou
pixel = (CelPixel *) mallocSafe(sizeof *pixel); ou
pixel = (CelPixel *) mallocSafe(sizeof(CelPixel)); nas aulas tenho feito assim
Espero que ajude!
Abs