Enviado em 24/07/2012 - 11:24h
Bom dia, pessoal. Alguém saberia me explicar porquê os endereços das variáveis i e d->value são diferentes já que no código abaixo d->value aponta para i?
#include <stdio.h>
#include <stdlib.h>
typedef struct data_tag
{
int *value;
} *data;
int main(int argc, char *argv[])
{
data d;
int i;
i = 10;
d = malloc(sizeof(struct data_tag));
d->value = &i;
printf("%p\n", &i);
printf("%d\n", i);
printf("%p\n", &d->value);
printf("%d\n", *d->value);
*d->value *= 2;
printf("%p\n", &i);
printf("%d\n", i);
printf("%p\n", &d->value);
printf("%d\n", *d->value);
printf("%p\n", &d);
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
typedef struct data_tag
{
int *value;
} *data;
int main(int argc, char *argv[])
{
data d;
int i;
i = 10;
d = malloc(sizeof(struct data_tag));
d->value = &i;
printf("%p\n", &i);
printf("%d\n", i);
printf("%p\n", &d->value);
printf("%d\n", *d->value);
*d->value *= 2;
printf("%p\n", &i);
printf("%d\n", i);
printf("%p\n", &d->value);
printf("%d\n", *d->value);
printf("%p\n", &d);
system("PAUSE");
return 0;
}