Enviado em 03/09/2008 - 12:05h
Bom dia pessoa, to com uma duvida aqui num trabalho para a facul .
codigo abaixo.
#include <stdio.h>
int a, b;
int *p;
void f1(){
int c;
static int d;
printf("&c = %x, &d = %x\n",&c,&d);
}
int main(){
int e, f;
p = (int *)malloc(sizeof(int));
printf("&a = %x, &b = %x\n",&a,&b);
f1();
printf("&e = %x, &f = %x\n",&e,&f);
printf("&p = %x, *p = %x\n",&p,p);
printf("&main = %x, &f1 = %x\n",&main, &f1);
exit(0);
}
Apos compilar o programa cima, saiu a seguinte saida
&a = 404080, &b = 4040a0
&c = 22ff44, &d = 404010
&e = 22ff74, &f = 22ff70
&p = 404090, *p = 3d2448
&main = 401313, &f1 = 4012f0
Gostaria de saber por que as variaveis sao alocadas em seções diferentes na memória .
codigo abaixo.
#include <stdio.h>
int a, b;
int *p;
void f1(){
int c;
static int d;
printf("&c = %x, &d = %x\n",&c,&d);
}
int main(){
int e, f;
p = (int *)malloc(sizeof(int));
printf("&a = %x, &b = %x\n",&a,&b);
f1();
printf("&e = %x, &f = %x\n",&e,&f);
printf("&p = %x, *p = %x\n",&p,p);
printf("&main = %x, &f1 = %x\n",&main, &f1);
exit(0);
}
Apos compilar o programa cima, saiu a seguinte saida
&a = 404080, &b = 4040a0
&c = 22ff44, &d = 404010
&e = 22ff74, &f = 22ff70
&p = 404090, *p = 3d2448
&main = 401313, &f1 = 4012f0
Gostaria de saber por que as variaveis sao alocadas em seções diferentes na memória .