社区
C语言
帖子详情
为什么这样施放指针有错呢?不解
raygts
2006-06-25 11:30:16
int main
{
char *test1=NULL;
char out[]="Hello\0";
test1 = (char *)malloc(256);
test1 = out;
printf("Test len:%ld \n",strlen(test1));
free(test1); //报错!!!!
return 0;
}
gcc 3.4.3编译器编译
...全文
137
8
打赏
收藏
为什么这样施放指针有错呢?不解
int main { char *test1=NULL; char out[]="Hello\0"; test1 = (char *)malloc(256); test1 = out; printf("Test len:%ld \n",strlen(test1)); free(test1); //报错!!!! return 0; } gcc 3.4.3编译器编译
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tailzhou
2006-06-25
打赏
举报
回复
test1 = (char *)malloc(256); test1指向堆
test1 = out; test1指向栈
栈是系统自动释放的,只能释放指向堆的指针
crazy_lazy_pig
2006-06-25
打赏
举报
回复
呵呵, 如果要用指针指向out的话, 那就不用释放了呀, 如果一定要释放还一定要指向out, 那么就这样:
test1 = (char *)malloc(256);
free(test1); //呵呵, 好玩.
test1 = out;
Alaylm
2006-06-25
打赏
举报
回复
test1 = out; 改成strcpy(test1,out);楼主是这意思不?
triace_zhang
2006-06-25
打赏
举报
回复
栈里的变量不用手动释放,变量的生存期完了之后编译器会执行弹栈动作,自动释放变量的内存段。
Alaylm
2006-06-25
打赏
举报
回复
strcpy();
raygts
2006-06-25
打赏
举报
回复
那怎么样释放这个指针啊???我想用指针哦
xyq1986
2006-06-25
打赏
举报
回复
二楼的说得没错,要用free就不要再用out对test1贼值了
crazy_lazy_pig
2006-06-25
打赏
举报
回复
同意楼上的.
另外, 在test1=out时发生了内存泄漏, 先前alloc出来的空间"丢失"了.
人物
施放
魔法代码
按方向键控制人物移动,按空格键
施放
魔法。
施放
烟幕的小乌贼作文.doc
施放
烟幕的小乌贼作文.doc
北京
施放
气球资质年检报告书.doc
北京
施放
气球资质年检报告书.doc
VS 全图 支持1.20E
问: 为什么我开启作弊后, VS弹出警告窗口? 答: 如果遇到此问题, 则可能是VS对MH的某项功能做了查封, 可以尝试着关闭某些功能. 问: 为什么我在游戏中使用技能时, 经常出现技能还在CD中但点击后为可
施放
状态, 但
施放
...
翻车机重牛钢绳快速
施放
装置的设计使用.pdf
翻车机重牛钢绳快速
施放
装置的设计使用.pdf
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章