+ -
当前位置:首页 → 问答吧 → 分配的内存总是比预期多出一倍?

分配的内存总是比预期多出一倍?

时间:2011-12-07

来源:互联网

就是这句代码,比如我分配8个字节,它会分配16个,后面的都以空格形式出现。
LPSTR lpszSubKey = (LPSTR)malloc( nLen );

作者: MissionSuccess   发布时间: 2011-12-07

你怎么知道?

作者: saiyaman5   发布时间: 2011-12-07

你是不是把这个值打出来了,觉得位数不对?

我怀疑是你自己计算错误了,你把实例及结果贴出来,可能更好一点。

作者: zero_226   发布时间: 2011-12-07

VS2008 多字节编码。

我是调试运行的,这句执行后,我查看变量窗口发现它总是多出一倍的长度。

作者: MissionSuccess   发布时间: 2011-12-07

不然你sizeof一下,看看具体是多大。

作者: zero_226   发布时间: 2011-12-07

指针能sizeof吗?得到也只是指针变量的大小。

作者: MissionSuccess   发布时间: 2011-12-07

那就把那块内存初始化成某个固定值,然后strlen,看具体有多少个字母。

作者: zero_226   发布时间: 2011-12-07