#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
void catstr(char *dest,char *src);
void main()
{
char *dest,*src="help you?";
src=(char *)malloc(256);
if((dest=(char *)malloc(80))==NULL)
{
printf("no memory
");
exit(1);
}
dest="Can I ";
catstr(dest,src);
puts(dest);
}
void catstr(char *dest,char *src)
{
int i=0;
while(*dest) dest++;
for(i=0;i<9;i++)
{
*dest=*src;
src++;
dest++;
}
}
以上是我的代码,可是一运行就显示停止运行,单步调试显示这个 test1_4.exe 中的 0x0116151a 处未处理的异常: 0xC0000005: 写入位置 0x011657c6 时发生访问冲突 。
想实现两个字符串连接起来,求各路高手指点怎么实现啊,这个程序是郭天祥那本书的例子,不知道为啥用不了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
看清楚再说了。
dest="Can I "; 应该改成strcpy( dest, (char *)"Can I" ) 。
改成strcpy( dest, (char *)"Can I" ) 还有泄露?
一周热门 更多>