| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1944 人关注过本帖, 1 人收藏
标题:关于结构体内的 数组和指针的问题,泪奔请教:
只看楼主 加入收藏
z87803915
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-12-28
收藏(1)
 问题点数:0 回复次数:11 
关于结构体内的 数组和指针的问题,泪奔请教:
关于结构体内的 数组和指针的问题,请教:

main()
{
struct stu
      {
       char *a;
       char *b;
      }boy;

 scanf("%s",boy.a);//
 scanf("%s",boy.b);// 问题就是这两行输入语句,当我输入 字符时候 直接无法执行,关闭程序了
}
编译能通过但是出现错误,直接无法执行,关闭程序了,
//***************************************

main()
{
struct stu
      {
       char a[5];
       char b[5];
      }boy;

 scanf("%s",boy.a);
 scanf("%s",boy.b);
}
这个就可以执行了,但是
main()
{
struct stu
      {
       char a[5];
       char b[5];
      }boy;

 scanf("%s",boy.a);
 scanf("%s",boy.b);
 boy.a="kkkk";  ////多了这行...,输入语句正确,但是 赋值语句错误了,,
}
就编译不过了,,而且没有报错信息,,,

用数组的话,输入语句不会出错,但是赋值语句出错,
用指针的话,输入语句出错,但是赋值不会语句出错,
这个两个语句我都想用,,所以,,,,
绝对虚心的请教,,,,,,谢谢各位,,
搜索更多相关主题的帖子: 指针 结构 
2008-01-05 16:55
灭火的风
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:161
专家分:10
注 册:2006-6-15
收藏
得分:0 
char *str1, str2[100];
是不一样的。
str1指向的是一个随机的空间,可能是系统程序所在的空间,所以你往里面写东西就造成了系统问题了,所以要用str2的方法。
2008-01-05 17:01
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
第一种情况,指针没有初始化,指向了不可预期的地方!
第三种情况要用循环一个字符一个字符的处理!! 数组名是一个指针常量,不能指向别的内存,而你的"kkkk"是一个常量的内存.....出现了两块内存~

樱花大战,  有爱.
2008-01-05 17:09
z87803915
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-12-28
收藏
得分:0 
回复 3# 的帖子
噢,谢谢两位大哥,,,
我明白了,,谢谢,,,, 谢谢,,,
2008-01-05 17:18
z87803915
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-12-28
收藏
得分:0 
...但是还有有个问题
main()
{ printf("请输入字符串\n");
 char *p;   //这里的的指针P不也是没有初始化嘛?
 scanf("%s",p);//为什么这里就可以正确运行呢?
 printf("%s",p);
 }
是不是因为 结构体的原因啊???
2008-01-05 18:11
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
运行没问题,,当你按下回车没有弹出错误窗口?

樱花大战,  有爱.
2008-01-05 18:44
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
你调试就知道会弹出一个窗口!!!

樱花大战,  有爱.
2008-01-05 18:46
z87803915
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-12-28
收藏
得分:0 
不会弹出窗口啊,,完全正确的,,,我用的是C FREE 3.5
2008-01-05 18:55
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
.................0,我用的是VC++6.0...在调试的时候输入数就会弹出,,,... 那就是编译器的问题!!但是我说的应该是没问题的~

樱花大战,  有爱.
2008-01-05 19:12
z87803915
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-12-28
收藏
得分:0 
崩溃
崩溃,,
我叫同学用别的编译器,报错,,:指针没有初始化,,但是 C FREE 3.5这个垃圾编译器居然  不报错,,,而且还能运行,,,
今天真死了好多脑细胞,,,呵呵,谢谢,大哥你了,,,,
2008-01-05 19:14
快速回复:关于结构体内的 数组和指针的问题,泪奔请教:
数据加载中...
 
   



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

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