2007年4月30日 星期一

variable 在function 傳值的情形

m1.c show the memory usage status

#include
#include
#include

void allo(void** m1){
printf("s1 - &m1: %8p, m1: %8p\n", m1, *m1);
if ((*m1=(void*)malloc(sizeof(char)))==NULL) {
printf("errno: %s, desc: %s\n", errno, strerror(errno));
}
printf("s2 - &m1: %8p, m1: %8p\n", m1, *m1);
}

int main(int argc, char **argv) {
char *m1;
printf("s0 - &m1: %8p, m1: %8p\n", &m1, m1);
allo((void**)&m1);
printf("s3 - &m1: %8p, m1: %8p\n", &m1, m1);
return 0;
}


執行結果
# ./m1
s0 - &m1: 0xfee68534, m1: 0x943c80
s1 - &m1: 0xfee68534, m1: 0x943c80
s2 - &m1: 0xfee68534, m1: 0x9a07008
s3 - &m1: 0xfee68534, m1: 0x9a07008

沒有留言: