我有功能,说:
int foo(char* a)
{
printf("%d\n", (int)a);
char cmd[] = "echo hello";
system(cmd);
printf("%d\n", (int)a);
}
用C代码编写,然后在Linux上运行它;这样做之后,我看到printf的输出是:
274351760
1853775725
我真是太困惑了!任何想法?! :|
答案 0 :(得分:3)
在这里工作:
#include <stdio.h>
#include <stdlib.h>
int foo(char* a)
{
printf("%p\n", a);
char cmd[] = "echo hello";
system(cmd);
printf("%p\n", a);
return 0;
}
int main(void)
{
foo("OMG");
return 0;
}
输出:
$ ./a.out
0x400718
hello
0x400718