首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于指针的有关问题!高手一起来研究一下!保证有研究价值

2012-02-12 
关于指针的问题!高手一起来研究一下!保证有研究价值!chartmpbuf[128]//声明一个长度128的数组*((int*)tmp

关于指针的问题!高手一起来研究一下!保证有研究价值!
char   tmpbuf[128];         //   声明一个长度128的数组

*((int*)tmpbuf)   =   24;   /*   要带入的字符串的长度为24,   在tepbuf[0]~tepbuf[3]
                                                带入   将里带入字符串的长度信息
                                            */  

[*][0][0][0]
  ↑
42   0       0     0  

这样的写法我还是第一次见到,通过DB大概了解了工作过程,
通过(int*)来得到确定保存字符串长度信息的内存字节数。
我的问题是如果   不是int   4个字节,而是3个,5个的时候怎样的处理??
 


[解决办法]
内置的类型占用内存数没有3和5这种情况啊,
另外这句:
*((int*)tmpbuf) = 24; /* 要带入的字符串的长度为24, 在tepbuf[0]~tepbuf[3]
带入 将里带入字符串的长度信息
*/
不是带入的字符串的长度为24,是把int型的24赋给了数组,它的长度将是4个字节.

tmpbuf的长度现在相当于是128/4=32,每一个元素是一个int
[解决办法]
我的问题是如果 不是int 4个字节,而是3个,5个的时候怎样的处理??

没有这样的处理单位,
如果是 3 5 ,
那么只能按照原始的 char 逐个字节操作了 ~
[解决办法]
这是一个bug发生器,强烈建议不要这样用.

热点排行