社区
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编译器编译
...全文
163
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
VS 全图 支持1.20E
使用中常见问题答疑: 问: 为什么我开启作弊后, VS弹出警告窗口? 答: 如果遇到此问题, 则可能是VS对MH的某项功能做了查封, 可以尝试着关闭某些功能. 问: 为什么我在游戏中使用技能时, 经常出现技能还在CD中但点击后为可
施放
状态, 但
施放
不出? 答: 请不要勾选 无限秘法/凤凰 这个选项. 此功能勾选后, 将导致问题中所出现的情况. 问: 为什么我在游戏中在选队伍的时候经常会遇到TAB乱跳 ? 答: 请不要勾选 他人点选选框 这个选项. 此功能勾选后, 将导致问题中所出现的情况.
Noita编杖(2023-1-4).pdf
Noita编杖(2023-1-4).pdf
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章