一个问题

Anderslijp 2004-12-07 03:52:14
char *p1 = "txyi";

char *p2 = (char *)malloc(sizeof(5));
strcpy( p, "txyi" );
中p1与p2的区别?
...全文
79 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcboyxhy 2004-12-07
  • 打赏
  • 举报
回复
const和非const的区别
Anderslijp 2004-12-07
  • 打赏
  • 举报
回复
多些各位兄弟!结帖,给自己点分不是很无耻吧?
pacman2000 2004-12-07
  • 打赏
  • 举报
回复
p1只读,p2可写。。。
541145 2004-12-07
  • 打赏
  • 举报
回复
指针pl指向静态存储区中某个位置
p2堆空间(用完后需用free(p2)释放内存
beyondtkl 2004-12-07
  • 打赏
  • 举报
回复
p1 指向靜態空間 指向一const字符串 不能再被修改..

p2 就是指向堆上分配的空間的指針...
需要手工分配空間 或者指向 可用的空間
然後如果手工分配了 還需要手工釋放 否則內存洩漏.
hunter_shen 2004-12-07
  • 打赏
  • 举报
回复
polarman(北极人) ( ) 信誉:100 2004-12-07 15:58:00 得分: 0


内存空间不同
p1栈空间 p2堆空间(用完后需用free(void*)释放内存)



正解,char *p1="txyi" 好像等同于 const char *p1
是在栈分配空间的。
mathe 2004-12-07
  • 打赏
  • 举报
回复
p1是编译器预分配的空间。
可以在栈中(对编译器要求比较高,而且p1不能够作为函数参数使用(直接或间接))
但是更常见是在一个预分配的数据段中,甚至可以分配到代码段中。
晨星 2004-12-07
  • 打赏
  • 举报
回复
指针pl指向静态存储区中某个位置。
stevens2009 2004-12-07
  • 打赏
  • 举报
回复
p1栈空间?
polarman 2004-12-07
  • 打赏
  • 举报
回复
内存空间不同
p1栈空间 p2堆空间(用完后需用free(void*)释放内存)

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧