免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fender0107401
打印 上一主题 下一主题

指针不应该只包含类型和地址,还包括指向的内存大小。  关闭 [复制链接]

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
11 [报告]
发表于 2010-10-09 01:13 |只看该作者
指向内存的大小是由环境提供的。比如调用malloc分配内存,标准C库负责记录每次分配的位置和大小。
SuperZ 发表于 2010-10-08 23:02



这一句有点不太明白,

比如说:
  1. p=malloc(10*sizeof(int));

  2. free(p)
复制代码
在free(p)的时候,怎么知道需要释放10*sizeof(int)这么大的空间呢?这个信息不是存在指针内部的吗?按照你的帖子,这个信息似乎是系统单独维护的,不保存在指针内部。

我觉得指针保存了3中信息:类型,地址,包含多大的空间。

如果进行np=p的操作的话,那么np就会拥有p的全部3种信息。

可能理解的不准,我的仔细查查。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
12 [报告]
发表于 2010-10-09 08:11 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
13 [报告]
发表于 2010-10-09 08:33 |只看该作者
{:3_184:}头晕

论坛徽章:
0
14 [报告]
发表于 2010-10-09 08:48 |只看该作者
回复 11# fender0107401


     错,堆是由链表来维护的,除了分配你指定的大小,还会分配一个header,这个记录了大小及指向下个分配堆的指针,所以你只要把指针传给free就ok了。这块看了很久了,具体细节自己查。

论坛徽章:
0
15 [报告]
发表于 2010-10-09 09:47 |只看该作者
本帖最后由 mik 于 2010-10-09 09:49 编辑
“引用”不是C语言的概念,是C++的概念

        “引用”不是C语言的概念,是C++的概念

    &i 既然可以赋值给指针变量,同时也可以进行*,[],+……等指针才具有的运算,那么有什么理由说它不是指针呢

    如果一个东西看着象苹果,闻着象苹果,吃着象苹果,那么它就只能是苹果。不能只把红苹果(指针变量)当苹果,而把绿苹果(指针常量)当成别的什么东东
pmerofc 发表于 2010-10-09 08:11


靠,没见你这样 SB 的

你真扯 JB 蛋!说话都不脸红

&i 能当指针吗? 指针是一个 lvalue,   &i 是一个 rvalue

对 &i 可以进行 *, [] 操作是因为: *, [] 不需要 lvalue,   你能对 &i 进行 ++, -- 操作吗?

别把有胡子的男的都当作你爹。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
16 [报告]
发表于 2010-10-09 09:54 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
17 [报告]
发表于 2010-10-09 10:05 |只看该作者
本帖最后由 davelv 于 2010-10-09 10:10 编辑

指针除了标识地址外是有上下文的,编译是就确定的指向类型,还有在运行时由库处理的动态内存空间的大小,分配状态等等。

论坛徽章:
0
18 [报告]
发表于 2010-10-09 10:12 |只看该作者
靠,没见你这样 SB 的
你真扯 JB 蛋!说话都不脸红

我深有同感!
“指针是一个 lvalue”这种SB言 ...
pmerofc 发表于 2010-10-09 09:54



SB, 你是说 指针是一个 rvalue

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
19 [报告]
发表于 2010-10-09 10:17 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
20 [报告]
发表于 2010-10-09 10:17 |只看该作者
别咬文嚼字了,明白内在,会用就行了,咱不是教育家
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP