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!
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
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