社区
C++ 语言
帖子详情
malloc问题一个
timingtimi
2010-03-29 04:02:48
用malloc申请了一个空间后发现长度有误,申请的28字节长度,结果变成了40字节,代码如下
char* HostInfo = NULL;
HostInfo = (char*)malloc(28 * sizeof(char));
int len = strlen(HostInfo); //len值为40
请问怎么回事
...全文
123
12
打赏
收藏
malloc问题一个
用malloc申请了一个空间后发现长度有误,申请的28字节长度,结果变成了40字节,代码如下 char* HostInfo = NULL; HostInfo = (char*)malloc(28 * sizeof(char)); int len = strlen(HostInfo); //len值为40 请问怎么回事
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
timingtimi
2010-03-29
打赏
举报
回复
[Quote=引用 11 楼 jackyjkchen 的回复:]
引用 10 楼 timingtimi 的回复:
引用 8 楼 jackyjkchen 的回复:
VC的debug模式肯定大于你分配的,因为对内存会初始化为0xcd,0x00肯定在合法空间外,release不一定
是debug模式,前28字节是被初始化为0xcd了,我的意思是malloc不会自动在28个字节结束后跟一个0吗?
28字节之后是非法空间
[/Quote]
懂了,多谢,结贴了
jackyjkchen
2010-03-29
打赏
举报
回复
[Quote=引用 10 楼 timingtimi 的回复:]
引用 8 楼 jackyjkchen 的回复:
VC的debug模式肯定大于你分配的,因为对内存会初始化为0xcd,0x00肯定在合法空间外,release不一定
是debug模式,前28字节是被初始化为0xcd了,我的意思是malloc不会自动在28个字节结束后跟一个0吗?
[/Quote]
28字节之后是非法空间
timingtimi
2010-03-29
打赏
举报
回复
[Quote=引用 8 楼 jackyjkchen 的回复:]
VC的debug模式肯定大于你分配的,因为对内存会初始化为0xcd,0x00肯定在合法空间外,release不一定
[/Quote]
是debug模式,前28字节是被初始化为0xcd了,我的意思是malloc不会自动在28个字节结束后跟一个0吗?
lbjfeng
2010-03-29
打赏
举报
回复
上面人说的很正确。
初始化很重要啊&……
menset一下
jackyjkchen
2010-03-29
打赏
举报
回复
VC的debug模式肯定大于你分配的,因为对内存会初始化为0xcd,0x00肯定在合法空间外,release不一定
Eleven
2010-03-29
打赏
举报
回复
囧。。。。。
高性能架构探索
2010-03-29
打赏
举报
回复
strlen 根据\0来判断结束,你没初始化,所以结果是个不确定值
ososo
2010-03-29
打赏
举报
回复
strlen是测试字符串长度的吧.
xiuxianshen
2010-03-29
打赏
举报
回复
杯具了,数组没有初始化的。。。。
pengzhixi
2010-03-29
打赏
举报
回复
你应该去看下strlen的计算方式
BT六眼飞鱼
2010-03-29
打赏
举报
回复
char* HostInfo = NULL;
HostInfo = (char*)malloc(28 * sizeof(char));
if(HostInfo==NULL)
{
throw "Bad Alloc!";
}
memset(HostInfo,0,28);
int len = strlen(cryptHostInfo); //再试试 呵呵 应该是0哦
昵称很不好取
2010-03-29
打赏
举报
回复
……
你没有初始化就是用strlen,出来什么结果都不奇怪~~
你把每个字节都初始化为0,strlen结果就是0
c语言
malloc
函数的用法和意义
当我们需要做
一个
成绩管理系统,人数可能为全校学生,也可能为
一个
班的学生,当我们开辟
一个
班的数组大小时,如果要存储整个学校的人数时,会出现内存不够用的情况;当我们开辟全校人数大小的数组时,输入
一个
班人数...
malloc
申请内存
问题
具体
问题
是这样的,首先
malloc
申请一块内存,但使用时比实际的大
一个
字节,比如我申请了52个字节,使用了53个或者申请50个使用了51个,然后我发现的现象是当我申请了52个字节使用了53个字节的时候,程序肯定会挂掉,...
用指针和
malloc
创建
一个
数组
malloc
作为
一个
包含在<stdlib.h>头文件下的函数,用于申请空间。 我们平常定义数组一般习惯性的就直接定义,比如int a[5],此处就是直接定义了
一个
数组,数组内的元素都是int型,并且有五个,从一开始就确定...
malloc
函数详解
但是但是:一部分人还是将:
malloc
当作系统所提供的或者是C的关键字,事实上:
malloc
只是C标准库中提供的
一个
普通函数而且很多很多人都对
malloc
的具体实现机制不是很了解。1,关于
malloc
以及相关的几个函数 #...
动态构造一维数组
malloc
1、
malloc
只有
一个
int型的形参,表示要求系统分配的字节数 2、
malloc
函数的功能是请求系统len个字节的内存空间,如果请求分配成功, 则返回第
一个
字节的地址,如果分配不成功,则返回NULL 3、
malloc
函数能且只能...
C++ 语言
64,651
社区成员
250,488
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章