请各位大虾看看,动态结构体数组的问题..

软件和网站开发以及相关技术探讨
回复
chl2090
帖子: 23
注册时间: 2006-10-26 21:11

请各位大虾看看,动态结构体数组的问题..

#1

帖子 chl2090 » 2006-11-29 16:43

如题,尝试用动态结构体数组来存储一些学生信息,其实动态数组也行,可是我用结构体的时候,编译是通过了,可是到了输入完之后,就会出错,看了半天也不知道什么回事.请各位帮帮忙..我是在XP下编译的

代码: 全选

#include <iostream.h>
struct dynamic_struct_arry
{
	char name[10];
	int  studentid;
	int  age;

}*arr;
int main()
{
	int len,i;
	cout<<"please enter array size :"<<endl;
	cin>>len;
	arr = new struct dynamic_struct_arry [len];
	for (i=1;i<=len;i++)
	{
		cout<<"please enter the "<<i<<" user name and area and num:"<<endl;
		cout<<"Name :";
		cin>>arr[i].name;
		cout<<"ID  :";
		cin>>arr[i].studentid;
		cout<<"Age :";
		cin>>arr[i].age;
	}
	i=1;
	while (i<=len)
	{
		cout<<arr[i].name<<'   '<<arr[i].studentid<<'   '<<arr[i].age<<endl;
		i++;
	}
	delete[] arr;
	return 0;
}
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#2

帖子 BigSnake.NET » 2006-11-29 19:15

cout<<arr.name<<' '<<arr.studentid<<' '<<arr.age<<endl;

字符串用雙引號
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
iltgcl
帖子: 16
注册时间: 2006-08-07 22:52

#3

帖子 iltgcl » 2006-11-29 20:52

1 for (i=1;i<=len;i++) 改成for (i=0;i<len;i++)
2 i=1;
while (i<=len) 改成
i= 0;
while(i<len)

错误的原因就是最后一个数组越界了。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#4

帖子 BigSnake.NET » 2006-11-30 13:28

越界而不出错

隐蔽的错误..
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复