char str[]="hello" 与 char *str="hello" 不是一回事
char str[]="hello" 分配在栈上,生命周期随着函数执行完而被回收
char *str="hello"分配在堆上,直至整个程序结束才进行回收
#include<stdio.h>
char * print()
{
char *str = "Hello, World!";//true
//flase 函数调用完毕之后,释放字符数组
//char str[] = "Hello, world!";
return str;
}
int main(int argc, char **argv)
{
printf("%s\n",print());
return 0;
}
本文深入探讨了C语言中字符串常量和指针的区别,通过实例展示了它们在内存上的不同分配方式及生命周期。重点阐述了如何在函数内部安全地使用字符串指针,避免常见的内存泄漏问题。
9332

被折叠的 条评论
为什么被折叠?



