#include<stdio.h>
#include<string.h>
#include <stdlib.h>
char* mymalloc();
int main()
{
char* str = NULL;
str = mymalloc();
printf("%s", str);
free(str);//这里释放内存出错
//system("pause");
return 0;
}
char* mymalloc()
{
char* a = (char*)malloc(sizeof(char) * 20);
char* b = "hello world";
memset(a, '0', strlen(a));
strcpy_s(a, 12, b);
return a;
}
C语言 --free()释放内存是出错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- CSDN专家-link 2021-05-23 17:23关注
memset(a, '0', strlen(a));----这里用strlen(a)是不对的
memset(a, 0, sizeof(char) * 20);
解决 1无用
悬赏问题
- ¥15 模电中二极管,三极管和电容的应用
- ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
- ¥15 气象网格数据与卫星轨道数据如何匹配
- ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
- ¥15 微软账户问题不小心注销了好像
- ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
- ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
- ¥20 关于web前端如何播放二次加密m3u8视频的问题
- ¥15 使用百度地图api 位置函数报错?
- ¥15 metamask如何添加TRON自定义网络