01/10/2018, 12:34
Giúp đỡ mảng động các cấu trúc C++
e viết hàm display() để xuất ra “stu” thứ “length -1” nhưng khi chạy lại bị lỗi “has stop working…”, các bác xem giúp e ạ cảm ơn nhiều
#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
typedef struct
{
int ID;
char name[50];
} sinhvien;
void setArr(sinhvien *stu, int length)
{
stu = new sinhvien[length];
for (int i = 0; i < length; i++)
{
cout << "=================" << endl;
cout << "Sinh vien thu " << i << endl;
cout << "Ten sinh vien: ";
cin >> stu[i].name;
cout << "So bao danh: ";
cin >> stu[i].ID;
}
return;
}
sinhvien max(sinhvien *stu, int length)
{
sinhvien result = stu[length - 1];
return result;
}
void display(sinhvien stu)
{
cout << "ten sinh vien: " << stu.name << endl;
cout << "so bao danh: " << stu.ID << endl;
return;
}
int main()
{
sinhvien *newstu =NULL, tmpstu;
int length = 0;
cout << "Nhap vao so sinh vien: ";
cin >> length;
setArr(newstu, length);
tmpstu = max(newstu, length);
display(tmpstu);
system("pause");
return 0;
}
Bài liên quan
Bạn cấp phát bộ nhớ cho
*newstu
trong hàm main luôn nhé. và bỏ dòng cấp phát trong hàm setArr đi.