"栈内存"引出问题
在函数内初始化的指针是局部变量,使用栈内存,此函数返回时会消亡 ,林锐老师写strcpy函数:
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}
其中的char *address = strDest, address这个指针岂不也会在函数结束时消亡 ?
那这个return address还正确吗?
-------------------下面的例子仍然引用自林锐的高质量编程
char *GetMemory3(int num)
{
char *p = (char *)malloc(sizeof(char) * num);
return p;
}
这段代码有无问题 ?