Chương trình khi chạy xong báo lỗi has triggered breakpoint

bool XuatHien(int *a, int n, int x)
{
	for (int i = 0; i < n; i++)
	{
		if (a[i] == x)
		{
			return true;
		}
	}
	return false;

}
void TronMang(int *a, int n, int *b, int m, int *c, int &l)
{
	
	int i = 0, j = 0;
	l = 0;
	c[l++] = a[i];
	i++;
	while (i < n && j < m)
	{
		if (!XuatHien(c,l,a[i]))
		{
			c = (int*)realloc(c, (l + 1) * sizeof(int));
			c[l++] = a[i];
		}
		if (!XuatHien(c, l, b[j]))
		{
			c = (int*)realloc(c, (l + 1) * sizeof(int));
			c[l++] = b[j];
		}
		i++;
		j++;
	}
	while (i < n && !XuatHien(c,l,a[i]))
	{
		c = (int*)realloc(c, (l + 1) * sizeof(int));
		c[l++] = a[i];
		i++;

	}
	while (j < m && !XuatHien(c, l, b[j]))
	{
		c = (int*)realloc(c, (l + 1) * sizeof(int));
		c[l++] = b[j];
		j++;
	}
}
int main()
{
	int *a, n;
	int *b, m;
	int *c;
	int l;
	printf("nhap so phan tu cua mang\n");
	scanf_s("%d", &n);
	a = new int[n];
	NhapMang(a, n);
	printf("nhap so phan tu cua mang\n");
	scanf_s("%d", &m);
	b = new int[m];
	NhapMang(b, m);
	c = (int*)malloc(1 * sizeof(int));
	TronMang(a, n, b, m, c, l);
	XuatMang(c, l);
	delete[] a;
	delete[] b;
	delete[] c;
	_getch();
	return 0;
}

Chương trình sau khi chạy xong báo lỗi has triggered breakpoint. F10 chạy bình thường, xuất ,mảng đúng luôn chỉ khi tới chỗ _getch() thì không chạy được nửa. Bác nào có tâm, giúp em với :(((

C làm gì có new, mà malloc của C làm sao thu hồi bằng delete của C++ được

1 Like

dùng free vẫn bị lỗi, mình có trộn C với C++ trong cấp phát nhưng vẫn đồng nhất, dùng malloc chung với realloc, new với delete

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?