社区
C语言
帖子详情
int* p=malloc(100); p+=10; free(p);
chenggn
2002-05-22 09:41:04
rt
...全文
169
15
打赏
收藏
int* p=malloc(100); p+=10; free(p);
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
prototype
2002-05-25
打赏
举报
回复
to chenggn(chenggn):
if you have 'int* p=malloc(100); p+=10;', then the result of 'free(p);' is undefined.
is that clear?
wyq_linda
2002-05-24
打赏
举报
回复
有一点注意的是:
free()释放的必须是分配的手地址,malloc(),不管你一次
分配的是多大,只要调用free(首地址)就意味着释放了所有的
内存,
prototype
2002-05-23
打赏
举报
回复
the result is undefined, which means anything could happen if you did that.
zzhouj
2002-05-23
打赏
举报
回复
应该可以释放吧
Elminster
2002-05-23
打赏
举报
回复
什么也释放不出来,DEBUG 版本的话,程序会报告运行时错误。
chenggn
2002-05-23
打赏
举报
回复
但是 释放成功。
假如 然后 如果
p-=10;
free(p);
还能释放出什么?
LionEagle
2002-05-23
打赏
举报
回复
agree steedhorse(晨星) and terron(注定编程一生)
terron
2002-05-23
打赏
举报
回复
to 楼主
这样肯定是不行的!
这是因为Windows的内存管理机制好像是什么有个堆的概念,
你在分配内存后,得到的地址在堆中会有记录,你以后只能释放这个地址才能够释放掉这段内存。我不知道我有没有说清楚。
另外,在malloc之前最后有一个强制转换,这是个习惯!
晨星
2002-05-23
打赏
举报
回复
会出问题,因为错作提供的内存分配记录中并没有一处从p+10开始的内存,因此也就不知道怎么释放。
xiaoluoli
2002-05-23
打赏
举报
回复
int* p=malloc(100); p+=10; free(p);
#include"iostream.h"
#include"malloc.h"
int* P=(int *)malloc(sizeof(100*int));
p+=10;//
free(p);//
chenggn
2002-05-23
打赏
举报
回复
en..
free(p+10); undefined or free(p); after that?
or .... neither
Kill_EM_All
2002-05-23
打赏
举报
回复
int *p = new int[100];
delete [] p;
kaneboy
2002-05-23
打赏
举报
回复
??
int * pi;
pi = new int[sizeof(int)*100];
delete[] pi;
carbon107
2002-05-23
打赏
举报
回复
这不行啊
fangrk
2002-05-23
打赏
举报
回复
什么意思?要内存泄漏的
c语言
malloc
函数的用法和意义
博客为解决数组内存分配不合理问题引入
malloc
函数。介绍了
malloc
函数原型、头文件、返回值等,强调使用时要强制类型转换,使用完需用
free
函数释放空间,避免内存泄漏,还说明了
free
函数使用注意事项及系统空间分配标记机制。
C语言 动态内存分配机制(堆区)
int
*p=
malloc
(5*sizeof(4))
本文介绍了C语言中动态内存分配的概念,包括堆区、内存分配函数如
malloc
、calloc、
free
和realloc的使用。强调了动态内存分配的原则,如避免大量小内存块的分配和防止内存泄漏,并给出了应用案例及指针使用的不同场景,如指针数组和数组指针。
动态内存管理函数(
malloc
,calloc,realloc,
free
)
文章介绍了C语言中的动态内存函数
malloc
、
free
、calloc和realloc,解释了它们的作用、用法和注意事项,强调了内存释放和内存调整的重要性以及避免内存泄漏的方法。
5分钟看懂什么是
malloc
本文介绍了C语言中的动态内存分配,重点讲解了
malloc
和
free
函数的使用,包括它们的作用、注意事项和常见问题。通过示例程序解释了如何在不支持C99标准的环境下使用动态内存分配,并提醒读者在使用后必须释放内存以避免内存泄漏。
new/delete和
malloc
/
free
的区别(
malloc
代码实现待完善)
本文介绍了C++中new/delete和C/C++标准库函数
malloc
/
free
的用法。阐述了new
int
和new
int
()的区别,对比了new和
malloc
在属性、参数、返回值类型等方面的差异。指出new/delete功能覆盖
malloc
/
free
,但C++未淘汰后者,且二者需配对使用。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章