社区
工具平台和程序库
帖子详情
一个realloc问题?
chh2002
2003-11-09 04:08:36
char *string;
string=new char[17];
strcpy(string,"");
strcpy( string, "Hello world from " );
string=(char*)realloc(string,6);
strcat( string, "strcpy" );
为什么输出结果是hello d from strcpy
中间少了点?
...全文
51
6
打赏
收藏
一个realloc问题?
char *string; string=new char[17]; strcpy(string,""); strcpy( string, "Hello world from " ); string=(char*)realloc(string,6); strcat( string, "strcpy" ); 为什么输出结果是hello d from strcpy 中间少了点?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhouqingyuan
2003-11-11
打赏
举报
回复
string=(char*)realloc(string,6);
改成string=(char*)realloc(string,(17+6)*sizeof(char));可能是楼主需要的
Andy84920
2003-11-11
打赏
举报
回复
我想这是你想要的:楼主:
这是我发的一遍帖子,得到很好的讨论,可以仔细看看:
http://expert.csdn.net/Expert/TopicView3.asp?id=2315448
Wolf0403
2003-11-10
打赏
举报
回复
因为 realloc 重新分配的比原来小,所以 VC 的 realloc 在需要的内存后面“打断”,用 cd 写入一些乱数据;但是因为没有 '\0' 在这些内存中,字符串还是原来的长度。
然后你用 strcat,是从原来字符串的 '\0' 开始追加的,所以整个字符串变得更长了,而且产生了越界
fierygnu
2003-11-10
打赏
举报
回复
楼主重新看看帮助就清楚了。
chh2002
2003-11-10
打赏
举报
回复
realloc不是追加吗?
我想要的是string 的长度是17+6个。
fierygnu
2003-11-09
打赏
举报
回复
realloc重新分配了内存。
realloc
函数的使用
realloc
函数的使用在数据结构中十分重要,本文给出了使用的例子和使用的具体说明
realloc
函数的测试和实现
realloc
函数是C语言标准库中的
一个
重要函数,主要用于重新分配之前分配的内存块大小。它使得程序员能够根据程序的需要动态地分配内存空间。由于动态内存分配在执行效率和资源使用方面具有很大优势,
realloc
函数的...
realloc
问题
.vsdx
就是配套我一篇博客讲解的资源,因为我截图可能不是特别清楚,所以我就将这个图上传上来了。是采用Visio画的。
REALLOC
.C
REALLOC
.C是C标准库中的
一个
源码文件,其中实现了
一个
关键的内存管理函数:
realloc
。
realloc
函数用于调整之前通过malloc、calloc或
realloc
函数分配的内存块的大小。该函数的实现细节对于程序员来说通常是透明的,...
realloc
函数使用总结
realloc
原型是extern void *
realloc
(void *mem_address, unsigned int newsize); 函数说明 语法 指针名=(数据类型*)
realloc
(要改变内存大小的指针名,新的大小)。 新的大小可大可小(但是要注意,如果...
工具平台和程序库
24,854
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章