01/10/2018, 08:45

Lỗi Debug assertion failed trong Visual c++

Em đang viết hàm nhập xuất mảng phân số, lúc nhập 2 phân số thì xuất mảng bình thường, nhập 3 phân số trở lên thì báo lỗi debug assertion failed mong các tiền bối giúp em với ạ
À nếu em thêm delete thì báo Debug Error nữa ạ bí quá mong các bro giúp em:grin:

#include<iostream>
#include<conio.h>
using namespace std;

struct phanso{
	int tuso, mauso;
};
typedef struct phanso PHANSO;

/*ostream& operator<< (ostream& outDev, const PHANSO& ps){
	if (ps.mauso == 1 || ps.tuso == 0) outDev << ps.tuso;
	else outDev << ps.tuso << "/" << ps.mauso;
	return outDev;
}
istream& operator>> (istream& inDev, PHANSO& ps){
	//cout << "Nhap lan luot phan tu, phan mau:
";
	cout << "Phan tu:";
	inDev >> ps.tuso;
	cout << "Phan mau:";
	inDev >> ps.mauso;
	return inDev;
}*/

void NhapMangPhanSo(PHANSO *p, int &n)
{
	cout << "So luong phan tu trong mang: ";
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cout << "Phan so thu [" << i << "]:
";
		cout << "  -Phan tu:";
		cin >> (p + i)->tuso;
		cout << "  -Phan mau:";
		cin >> (p + i)->mauso;
	}
}
void XuatMangPhanSo(PHANSO *p, int &n)
{
	cout << "Mang Phan So Vua Nhap:
";
	for (int i = 0; i < n; i++)
	{
		cout << (p + i)->tuso<< "/" << (p + i)->mauso;
		cout << " ";
	}
}

void main()
{
	PHANSO* p=new PHANSO;
	int n;
	NhapMangPhanSo(p, n);
	XuatMangPhanSo(p, n);
}
Khoa NTA viết 10:51 ngày 01/10/2018

PHANSO* p=new PHANSO; bạn không cấp phát đủ vùng nhớ cho nó :)) bạn nên đọc lại về cấp phát động.

Duy Lâm viết 10:53 ngày 01/10/2018

Đúng thật, hôm thầy dạy cấp phát động e k đến lớp dc nên h còn mơ hồ quá. Cám ơn a.

Bài liên quan
0