野指针的问题!
#include <memory.h>
#include <string.h>
#include <stdlib.h>
void change_context(char ** p)
{
char a ='c';
if(!p)
return;
*p =&a;
}
int main(int argc, char* argv[])
{
char * p = NULL;
change_context(&p);
printf("p[0]=%c\n",p[0]);
return;
}
这个程序正常运行,但是我一直觉得会有问题
a是临时变量,在chang_context后,这个变量就不存在了,&a也被系统回收了。
这个时候,如果系统把&a这个地址分配给其他的变量,而这个时候p还是指向
&a这个地址。会不会导致错误?