关于函数的指针动态分配内存的问题
#include<stdio.h>char*returnStr(){char*p="helloworld!";returnp;}intmain(){char*str;st...
#include <stdio.h>
char *returnStr()
{
char *p="hello world!";
return p;
}
int main()
{
char *str;
str=returnStr();
printf("%s\n", str);
return 0;
}
#include <stdio.h>
char *returnStr()
{
char p[]="hello world!";
return p;
}
int main()
{
char *str;
str=returnStr();
printf("%s\n", str);
return 0;
}
想问下 这俩个函数中的p是不是都是函数的局部变量?
如果都是局部变量的话,那么他们应该都是“栈”上分配内存的啊。当函数结束的时候,都会被pop出来而销毁的。 展开
char *returnStr()
{
char *p="hello world!";
return p;
}
int main()
{
char *str;
str=returnStr();
printf("%s\n", str);
return 0;
}
#include <stdio.h>
char *returnStr()
{
char p[]="hello world!";
return p;
}
int main()
{
char *str;
str=returnStr();
printf("%s\n", str);
return 0;
}
想问下 这俩个函数中的p是不是都是函数的局部变量?
如果都是局部变量的话,那么他们应该都是“栈”上分配内存的啊。当函数结束的时候,都会被pop出来而销毁的。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询