| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2603 人关注过本帖
标题:void*指针移动
只看楼主 加入收藏
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
第一种不具有可移植性
第二种无法通过编译

*(int*)((char*)p + 4) = size;
或者
*(int*)&((char*)p)[4] = size;

打字的长度貌似是一样的……

其实,如果是size的话:
((size_t*)p)[1] = size;
2008-10-25 17:13
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
[bo][un]nuciewth[/un] 在 2008-10-25 17:06 的发言:[/bo]

指针本身只有一种空间值。


指针还有一个属性,就是所指元素大小。
显然void*指针没有这个属性。
2008-10-25 17:14
nwpu063417
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:428
专家分:28
注 册:2007-5-11
收藏
得分:0 
[bo][un]风居住的街道[/un] 在 2008-10-25 17:14 的发言:[/bo]



指针还有一个属性,就是所指元素大小。
显然void*指针没有这个属性。


是这个样子的吗?
请问大家指针类型的数据在内存中是怎么存放的呢?
怎么去分int*类型的指针在加1移动4个字节,char*指针在加1移动一个字节?
指针在内存中不都是4个字节吗?

2008-10-25 23:57
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
指针加一等于(int)p + sizeof(*p)
2008-10-26 13:23
快速回复:void*指针移动
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016166 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved