01/10/2018, 14:45

Cấp phát bộ nhớ động trong C++ bị ngừng chương trình

void NhapMang(int *a, int &n)
{
	do
	{
		printf("Nhap so phan tu cua mang:");
		scanf_s("%d", &n);
	}
	while (n < 1 || n > 10000);
	for (int i = 0; i < n; i++)
	{
		printf("a[%d]=", i);
		scanf_s("%d", &a[i]);
	}
}
void XuatMang(int *a, int n)
{
	printf("
");
	for (int i = 0; i < n; i++)
	{
		printf("%d	", a[i]);
		
	}
}
int _tmain(int argc, _TCHAR* argv[])
{
	int *a;
	int n=0;
	a = new int;
	NhapMang(a, n);
	XuatMang(a, n);
	delete a;
	return 0;
}

Tại sao em làm lại bị break thế mọi người

Florastamine viết 16:50 ngày 01/10/2018

Cấp bộ nhớ cho 1 biến mà nhập cả mảng thì crash là phải

int *a = new int[10000];
Đạt Vũ viết 16:47 ngày 01/10/2018

Ok được rồi cảm ơn bác nha

Đạt Vũ viết 16:55 ngày 01/10/2018

bác ơi có thể làm cách nào thay 10000 a=new int[n] được không bác mà không cần nhập n ở hàm main ý.
???

rogp10 viết 16:55 ngày 01/10/2018

Bạn có int& n rồi (truyền tham biến) thì cứ viết vào hàm thôi.

Đạt Vũ viết 16:52 ngày 01/10/2018

viết a=new int[n] vào hàm hở bác, em cho a=new int[n] sau khi nhập n trong hàm mà ra giá trị toàn rác

rogp10 viết 16:50 ngày 01/10/2018

Oops, phải có int* &a nữa

Đạt Vũ viết 17:00 ngày 01/10/2018

ok bác. tks bác nha

Bài liên quan
0