荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Begin (一开始就绝望), 信区: Program
标  题: Re: 为何这个小程序运行到strcpy函数就出错啊
发信站: 荔园晨风BBS站 (Mon Sep 16 12:45:43 2002) , 站内信件

对不起,忘记来这里看了。
在程序中的语句
char *a = "hello";
经过编译器的优化,所有程序中静态描述的字符串应该是静态处理的,
也就是说,在程序中的如下语句:
char *a = "hello";
char *b = "hello";
char *c = "hell";
char *d = "llo"; ...
内存中应该只有一个hello字串来避免浪费。
所以你的 counter::str = "hello";实际上并没有空间分配的操作,
而只是吧*counter::str指针指向了"hello"这个静态串的存储位置。
指针没分配之前不能做strcpy, memcpy这类操作。
【 在 lvyou (亚热带少年) 的大作中提到: 】
:   暂时只想到在strcpy这句前加上:counter::str = new char[20];这个方法。
:


--
Good programming is %99 sweat and %1 coffee.
※ 来源:.荔园晨风BBS站WWW bbs.szu.edu.cn. [FROM: 61.145.139.42]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店