| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3235 人关注过本帖
标题:[求助]字符指针数组能动态赋值吗?
只看楼主 加入收藏
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
 问题点数:0 回复次数:20 
[求助]字符指针数组能动态赋值吗?

char * str[5];
int i;
for(i=0;i<5;i++)
{
scanf("%s",str); // 这里这么写 正确吗 为什么?
}


我这样写的 在接受时 没异常 但 后面接着输出 就出异常!!!

搜索更多相关主题的帖子: 赋值 指针 动态 字符 str 
2006-11-21 20:16
xianlin_lea
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-10-6
收藏
得分:0 

数组名表示的是数组的首地址!
每次循环只是给数组的第0个元素赋值,而并不是给数组的每个素赋值,
所以除了0元素其余的数组元素是不确定的!
所以输出当然会出错了!


2006-11-21 20:30
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
得分:0 
没给解决办法啊    str[i]  这样接收时 就出现异常
2006-11-21 21:27
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
收藏
得分:0 

改为:scanf("%c",str+i);或scanf("%c",&str[i]);


要让一个男人破产,请给他一架相机,要让一个男人倾家荡产,请给他一架望远镜。
2006-11-22 09:13
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 

看你的意思,是想定义一个包含5个字符串的数组,那么在赋值前必须为每个字符串申请内存


2006-11-22 12:57
xianlin_lea
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用whw19840229在2006-11-21 21:27:20的发言:
没给解决办法啊 str[i] 这样接收时 就出现异常

可以我接收啊!
试试下面的小程序
main()
{ char * str[5];
int i;
for(i=0;i<5;i++)
{
scanf("%s",str[i]);
}

printf("%s,%s",str[1],str[3]);
getch();
return 0;
}
INPUT
follow
basic
great
fortran
computer
OUTPUT
basic,fortran
我用的是wintc2.01编译的,没有错


2006-11-22 13:02
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
那只能说你运气好
一般在运行时都会报错
这个程序绝对是内存泄漏
可以当做教学例子了

[此贴子已经被作者于2006-11-22 13:18:52编辑过]


2006-11-22 13:16
xianlin_lea
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用smartwind在2006-11-22 13:16:42的发言:
那只能说你运气好
一般在运行时都会报错
这个程序绝对是内存泄漏
可以当做教学例子了

请问,可以给出详细的解释吗?
不是很了解!
谢谢!


2006-11-22 13:21
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 

不是内存泄漏,而是没有分配内存,这是很危险的
只声明了指针数组,但是没有给数组中的各指针分配一个可以存储字符串的内存单元
可改为
main()
{ char str[5][10];
int i;
for(i=0;i<5;i++)
{
scanf("%s",str[i]);
}

printf("%s,%s",str[1],str[3]);
getch();
return 0;
}


片言可以明百意 坐驰可以役万里
2006-11-22 13:32
xianlin_lea
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-10-6
收藏
得分:0 

记住了!

谢谢楼上的!


2006-11-22 20:14
快速回复:[求助]字符指针数组能动态赋值吗?
数据加载中...
 
   



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

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