sk-51是什么材料:C++高人指教:为什么这里可以返回“栈内存”的指针

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 08:18:31
char * getmemory(void)
{
char *p =(char *) malloc(100);
return p;//是否不能返回,*p是栈内存的。但林锐书中用这个做例子
}

void test()
{
char *str;

str=getmemory;//利用了getmemory返回值,但*p内存已经摧毁,能用吗
strcpy(str,"hello");
cout << str << endl;
return;
}

getmemory()里的程序是在内存中分配大小为100个char的空间,p是指向这个空间首地址的。每次调用这个函数,系统都会分配一个空间,都会返回一个指针。这个空间是不会随函数调用的结束而被系统回收的。要释放这个空间可以用free(p);
所以这个程序是没有问题的。

请问《〈是重定向的意思吗