SegmentationFault ao pintar a última região conexa

SegmentationFault ao pintar a última região conexa

por Rodrigo Alves Souza -
Número de respostas: 3

Quando eu rodo o ep2 usando a imagem1.ppm (./ep2 imagem1.ppm) e começo apertar 'r', o programa funciona normalmente como esperado pintando apenas uma região conexa por vez. Mas ao chegar na última (preta) dá SegmentationFault.

O mesmo acontece abrindo a imagem3. Alguém se deparou com isso já?

Em resposta à Rodrigo Alves Souza

Re: SegmentationFault ao pintar a última região conexa

por José Coelho de Pina -

começo apertar 'r', o programa funciona normalmente como esperado pintando apenas uma região conexa por vez. Mas ao chegar na última (preta) dá SegmentationFault.

Hmmmm.
Este comportamento sugere que na função regioesImagem o seu programa não está inicializando a lista de regiões com NULL.

Se o ponteiro para o começo de uma lista não é inicializado com NULL
e realizamos uma série de inserções no início da lista, como fizemos na aluna 09,
então o campo prox da última célula da lista ficará com lixo e o programa deverá
quebrar quando percorremos a lista e chegamos na última célula.

Em resposta à José Coelho de Pina

Re: SegmentationFault ao pintar a última região conexa

por Rodrigo Alves Souza -

Estranho porque logo no começo da função eu faço 

int i, j;
/* Inicializa a lista ligada */
CelRegiao *iniRegiao, *novaRegiao;
iniRegiao = NULL;

Insiro a nova região usando o novaRegião e retorno no fim o iniRegiao

A última coisa que o terminal printa é

graphic: chamando a funcao pinteRegiaoRGB.
Segmentation fault (core dumped)

Em resposta à José Coelho de Pina

Re: SegmentationFault ao pintar a última região conexa

por Rodrigo Alves Souza -

Consegui resolver o problema. Na verdade, meu programa não estava inicializando a lista de celulas pixel (regiao->ini)

Obrigado pela dica!