那些关于"烫烫烫烫烫"与"屯屯屯屯屯屯"的记忆.....那一年....

qq120848369 2010-11-13 06:40:32
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
在经历过无数的"烫烫烫烫烫","屯屯屯屯屯屯"之后,
我们都知道了,内存原来是可以驾驭的...
*/

int main()
{
/*
原来内存管理是这样的,即便结果完美无缺,
但却危机四伏........
*/
const char *src="Hello Csdn!";
char *dest=(char*) malloc(strlen(src));
memcpy(dest,src,strlen(src)+1);
printf("%s\n",dest);

return 0;
}

/*
今天的故事到这里...希望大家少一点屯...
*/
...全文
1794 99 打赏 收藏 转发到动态 举报
写回复
用AI写文章
99 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdcxyz 2011-04-20
  • 打赏
  • 举报
回复
写的错误代码,虽然经典,最后也不给解释,真不知道你什么意思。
老邓 2010-11-19
  • 打赏
  • 举报
回复
真不知道你想干啥?
qq120848369 2010-11-15
  • 打赏
  • 举报
回复
楼台高高.
modyaj 2010-11-15
  • 打赏
  • 举报
回复
曾经见过 原来在这里哦
szgrape 2010-11-15
  • 打赏
  • 举报
回复
这个要顶哦,烫烫陪我走过好长一段时间哦
Mephisto_76 2010-11-15
  • 打赏
  • 举报
回复
需要初始化。
winton_adlsy 2010-11-15
  • 打赏
  • 举报
回复
申请的内存大小于在memcpy中使用的内存大小不一致。这个可造成堆溢出。
bcj00000 2010-11-15
  • 打赏
  • 举报
回复
free free free .....................
maoxing63570 2010-11-15
  • 打赏
  • 举报
回复
Floor1: char *dest=(char*) malloc(strlen(src));少分配了一个单元,最终导致dest不是以'\0'结尾的(strlen()不包括'\0').memcpy(dest,src,strlen(src)+1);执行这句的时候有可能程序会崩溃掉
Floor2:
void retStr(char *ret)
{
ret=(char*)malloc(sizeof(char)*100);
}
指针发生拷贝,最终导致内存泄露,打印的时候程序崩溃,因为myStr=0;
Floor3:
char src[]="Hello Csdn!";
char *dest;

strcpy(dest,src);
没有给dest分配空间,程序crash
Floor4:char *str="Hello Csdn!";
存储在常量区不可以更改,程序crash
ithiker 2010-11-15
  • 打赏
  • 举报
回复
mark,学习...
yangkui1226 2010-11-14
  • 打赏
  • 举报
回复
知道了 谢谢楼主
yangkui1226 2010-11-14
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
在经历过无数的"烫烫烫烫烫","屯屯屯屯屯屯"之后,
我们都知道了,内存原来是可以驾驭的...
*/

int main()
{
/*
原来内存管理是这样的,即便结果完美无缺,
但却危机四伏........
*/
const char *src="Hello Csdn!";
char *dest=(char*) malloc(sizeof(char)*(strlen(src)+1));
strcpy(dest,scr);
printf("%s\n",dest);
free(dest);
return 0;
}

/*
今天的故事到这里...希望大家少一点屯...
*/
//楼主这样对不对?
CppDisciple 2010-11-14
  • 打赏
  • 举报
回复
都没有对函数调用返回的指针做防御性验证啊!!!!
luyaozhi 2010-11-14
  • 打赏
  • 举报
回复
很有同感。
qq120848369 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 54 楼 yangkui1226 的回复:]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
在经历过无数的"烫烫烫烫烫","屯屯屯屯屯屯"之后,
我们都知道了,内存原来是可以驾驭的...
*/

int main()
{
/*
原来内存管理是这样的,即便结果完美无缺,
但却危机四伏........
*/
c……
[/Quote]

没有释放dest,其他没有错。
qq120848369 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 51 楼 lgz1989cn 的回复:]
C/C++ code
C/C++ code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
在经历过无数的"烫烫烫烫烫","屯屯屯屯屯屯"之后,
我们都知道了,内存原来是可以驾驭的...
*/

class LoveCsdn
{
public:
LoveCsdn():n……
[/Quote]

恩,都对了.
wswhz1987 2010-11-14
  • 打赏
  • 举报
回复
MARK下,仔细看。。。
chen870201 2010-11-14
  • 打赏
  • 举报
回复
看标题不懂~
zourong0412 2010-11-14
  • 打赏
  • 举报
回复
感动啊!!特别是那句/*
在经历过无数的"烫烫烫烫烫","屯屯屯屯屯屯"之后,
我们都知道了,内存原来是可以驾驭的...
*/
每次只要我不付初值,或者是在比较大小的时候初值赋的不对,还有就是用数组的时候越界,都是这个德行啊!而且我常常不思悔改,所以总是和"烫烫烫烫烫","屯屯屯屯屯屯"见面啊~~~
yangkui1226 2010-11-14
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
在经历过无数的"烫烫烫烫烫","屯屯屯屯屯屯"之后,
我们都知道了,内存原来是可以驾驭的...
*/

int main()
{
/*
原来内存管理是这样的,即便结果完美无缺,
但却危机四伏........
*/
const char *src="Hello Csdn!";
char *dest=(char*) malloc(sizeof(char)*(strlen(src)+1));
memcpy(dest,src,strlen(src)+1);
printf("%s\n",dest);

return 0;
}

/*
今天的故事到这里...希望大家少一点屯...
*/
//新手求解啊!
加载更多回复(73)

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧