社区
C语言
帖子详情
int* p=malloc(100); p+=10; free(p);
chenggn
2002-05-22 09:41:04
rt
...全文
127
15
打赏
收藏
int* p=malloc(100); p+=10; free(p);
rt
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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/C++ 指针的13份资料
指针在此过程中扮演关键角色,如`
int
*ptr = (
int
*)
malloc
(sizeof(
int
)*
10
);`分配了
10
个整数的内存。 9. **指针与结构体**:指针可以用于访问结构体中的成员,如`struct Node {
int
data; }; struct Node *node_ptr...
C/C++ 的思考:
int
a[
10
] 和
int
*a =
malloc
(
10
* sizeof(
int
)) 的区别
int
a[
10
] 和
int
*a =
malloc
(
10
* sizeof(
int
)) 究竟有何区别? 这个问题的答案或许很简单,但是这里我想要细细的去探讨下。 我们都知道,C 和 C++ 对于数组和动态内存的处理方案是不同的,C 使用了数组、
malloc
/...
int
*p和(
int
*)p的区别;返回多个值给主函数的做法;
int
*p=new
int
[n]的用法;
int
*p = (
int
*)
malloc
(n*sizeof(
int
))的含义
int
*p和(
int
*)p的区别 (
int
**)p;//强制将变量p转换成指向
int
类型指针变量的 指针(转换后p是指向指针的指针) (
int
*) *p;//强制将变量 *p 转换成指向
int
类型的指针变量,(*p当成整体做强制转换,这么看来,p...
int
*p = &a、p = &a、*p = a的正确理解
文章目录 1、指针 2、引用 3、野指针 1、指针
int
*p = &a; //初始化一个
int
*类型指针,同时将变量a的地址存入p指针 这里是一个特殊用法,仅在初始化变量的时候可以使用,应分为两个部分去进行理解。
int
*p; /...
free
函数的使用
int
*p =
malloc
(sizeof *p); 前面讲过,动态分配的内存空间需要程序员手动编程释放。那么怎么释放呢?使用
free
函数。
free
函数的原型: #include<stdlib.h> void
free
(void *p);
free
函数无返回值,他的功能...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章