| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 428 人关注过本帖
标题:请教一个关于指针的问题。。
只看楼主 加入收藏
mxn
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-3-31
收藏
 问题点数:0 回复次数:7 
请教一个关于指针的问题。。
#include "stdio.h"
#include "string.h"
main()
{
char *st1="12345",*st2="abcdf";
strcat(st1,st2);
printf("%s",st1);
}
这段程序不能正常运行。。。为什么啊???
搜索更多相关主题的帖子: 指针 
2007-04-05 16:53
cotwin
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-12-21
收藏
得分:0 
第一个数组无法容纳第二个字符串.
2007-04-05 17:15
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 

我也看不出来有什么错误


2007-04-05 17:16
cotwin
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-12-21
收藏
得分:0 
#include "stdio.h"
#include "string.h"
main()
{
char st1[20]="12345",*st2="abcdf";
strcat(st1,st2);
printf("%s",st1);
}
2007-04-05 17:23
mxn
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-3-31
收藏
得分:0 
以下是引用cotwin在2007-4-5 17:23:23的发言:
#include "stdio.h"
#include "string.h"
main()
{
char st1[20]="12345",*st2="abcdf";
strcat(st1,st2);
printf("%s",st1);
}

我也知道你这个是对的啊。。。
但我就是不知道下面的为什么错。。。
#include "stdio.h"
#include "string.h"
main()
{
char *st1="12345",*st2="abcdf";
strcat(st1,st2);
printf("%s",st1);
}

2007-04-05 18:22
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
我前几天也遇到过这样的问题
*st1="12345",*st2="abcdf";
可能是系统给st1和st2分配空间刚刚够没预留位置
而st1[20]系统给了20个字符的空间,没用完的话就可以给后面加

英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-04-05 18:35
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

已经超出数组上限,你的程序就相当于下面的

#include "stdio.h"
#include "string.h"
main()
{

char *st1,a[]="12345",*st2,b[]="abcdf";
st1=a;
st2=b;
strcat(st1,st2);
printf("%s",st1);
}

在你给指针ST1赋字符串的值时,系统给字符串分配了相应的空间,大小等于字符串的长度+1,你再复制的时候,已经超出上限,所以会出现问题,改成下面的就可以了

#include "stdio.h"
#include "string.h"
main()
{

char *st1,a[20]="12345",*st2,b[10]="abcdf";
st1=a;
st2=b;
strcat(st1,st2);
printf("%s",st1);
}


雁无留踪之意,水无取影之心
2007-04-05 18:38
zhouxman
Rank: 1
来 自:hubei
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-1-26
收藏
得分:0 

楼上说得对啊


逆水行舟,不进则退!!!
2007-04-05 19:04
快速回复:请教一个关于指针的问题。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016037 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved