char *GetMemory(void)
{char p[] = "hello world";return p;
}void Test(void)
{char *str = NULL;str = GetMemory();printf(str);
}
1、指出编程错误
2、指出错误后果
3、指出纠正方法
分析:
运行结果可能会乱码,因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是NULL,但其原先的内容已经被清除,新内容未知,所以可能乱码。
和上一题的处理修改方法可以一样,二级指针的形式。