| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 642 人关注过本帖
标题:[求助]指针的奇怪现象
只看楼主 加入收藏
圆圆的鸟蛋
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2007-4-22
收藏
 问题点数:0 回复次数:6 
[求助]指针的奇怪现象

#include <iostream>
using namespace std ;

struct Person
{
char *name ;
int age ;
char sex ;
};

void main()
{
Person man[2] ;
int i ;

for(i=0; i<2; i++)
{
man[i].name = new char[5] ; //man[i].name = new char ;

cout << "请输入姓名:" ;
cin >> man[i].name ;

cout << "请输入年龄:" ;
cin >> man[i].age ;

cout << "请输入性别:" ;
cin >> man[i].sex ;

cout << endl ;
}
for(i=0; i<2; i++)
{
cout << "姓名:" << man[i].name ;
cout << ",年龄:" << man[i].age ;
cout << ",性别:" << man[i].sex ;
cout << endl ;

delete [] man[i].name ; //delete man[i].name ;
}
}

为什么像注释那样修改程序后,程序会出错呢??当我像注释那样修改后,再注释掉cin >> man[i].name ;一句,程序又正确了,这又是为什么呢??

麻烦高手解释一下。感谢了!!

搜索更多相关主题的帖子: 指针 现象 
2007-08-11 11:01
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
char *name ;

new char分配的内存不足以提供你输入。
除非你只输入一个字符。

[此贴子已经被作者于2007-8-11 11:11:18编辑过]


Fight  to win  or  die...
2007-08-11 11:07
圆圆的鸟蛋
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2007-4-22
收藏
得分:0 
我就是输入了一个字符也会出错啊

鸟蛋开始孵化。。。我等待那一天Forever。。
2007-08-11 11:57
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 

[CODE]请输入姓名:a
请输入年龄:12
请输入性别:n
请输入姓名:b
请输入年龄:15
请输入性别:v
姓名:a,年龄:12,性别:n
姓名:b,年龄:15,性别:v[/CODE]



你输入合法的话,没有错误。这是new char的结果。


Fight  to win  or  die...
2007-08-11 12:57
圆圆的鸟蛋
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2007-4-22
收藏
得分:0 
奇了怪了,我就是不行!!

鸟蛋开始孵化。。。我等待那一天Forever。。
2007-08-11 13:49
wxt335
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-23
收藏
得分:0 

delete [] man[i].name ; //delete man[i].name ;

怎么在这里出问题

2007-08-11 23:08
wwyinhuabin
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-8-10
收藏
得分:0 

我的也能运行

[此贴子已经被作者于2007-8-13 10:42:02编辑过]

2007-08-13 01:11
快速回复:[求助]指针的奇怪现象
数据加载中...
 
   



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

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