Problema

Problema

by Marlon Ribas Vismari -
Number of replies: 1
Olá Professor.

Professor, hoje em sala, no fim da aula, mostrei para o senhor o problema que estou tendo.

ElemSilhueta *silhueta_de_edificio(Edificio edif)
{
ElemSilhueta *p;
p = mallocX(2 * sizeof(ElemSilhueta));
.
. /* Aqui faz atribuições, por exemplo: p[k] = edif.esq, onde k é qualquer número pertencente ao conjunto dos naturais */
.
return p;
}

ElemSilhueta *algoritmo1(int m, Edificio *e, int *n)
{
ElemSilhueta *p1, *p2;

printf("%d %d %d\n", e[1].esq,e[1].alt, e[1].dir);
p1 = silhueta_de_edificio(e[0]);

printf("%d %d %d\n", e[1].esq,e[1].alt, e[1].dir);
p2 = silhueta_de_edificio(e[1]);
.
.
.
}

Os valores de saída dos printf são:
200 100 400
25 3 40

Se eu não fiz atribuições a e[1], pq está sendo modificado?

Valeu professor!
In reply to Marlon Ribas Vismari

Re: Problema

by Marlon Ribas Vismari -
Professor, descobri o erro.

Para quem sem querer tiver o mesmo erro, fica a dica: Eu fiz um malloc(n * (int)) para um tipo de struct. Este foi o erro (rsrs).

Obrigado