30/09/2018, 16:48

giúp mình về cấp phát động trong c++

#include<iostream>
//
//hiển thị
void Display(char *display, int n)
{
	for (int i = 0; i < n; i++)
		std::cout << display[i];
	std::cout << std::endl;
}
//
//khởi tạo cấu hình đầu tiên
void InitFirst(char *&first, int n)
{
	first = new char[n];
	for (int i = 0; i < n; i++)
		first[i] = '0';	
}
//
//khởi tạo cấu hình cuối cùng
void InitLast(char *&last, int n)
{
	last = new char[n];
	for (int i = 0; i < n; i++)
		last[i] = '1';
}

int NextBitString(char *first, int n)
{
	//
	//countBool đếm xem có bao nhiêu số 1 chuyển thành số 0
	int countBool = 0;
	//
	//xét từ vị trí cuối cùng
	n--;
	while (first[n] == '1')
	{
		first[n--] = '0';
		countBool++;
	}
	first[n] = '1';

	return countBool;
}

void Generate(int n)
{
	//
	//đếm sồ trường hợp có thể xảy ra
	int countCase=1;

	char *first = NULL, *last = NULL;
	//
	//khởi tạo cấu hình đầu tiên và cuối cùng
	InitFirst(first, n);
	InitLast(last, n);
	//
	//hiển thị cấu hình đầu tiên(trường hợp đầu tiên)
	Display(first, n);

	while (true)
	{
		int countBool;
		countBool = NextBitString(first, n);
		//
		//kiểm tra xem có phải là cấu hình cuối cùng chưa
		if (countBool != n)
		{
			Display(first, n);
			countCase++;
		}
		else
			break;
	}
	std::cout << "co tat ca " << countCase << " truong hop";

	//lỗi ở đây
	delete[] first, last;
}

void main()
{
	int n;
	std::cout << "nhap n=";
	std::cin >> n;
	Generate(n);
}

Tại sao lệnh delete[] first, last; lại bị lỗi vậy?

... viết 18:55 ngày 30/09/2018

Bạn thử tách thành 2 dòng

delete[] first;
delete[] last;

xem thử thế nào? Mình cũng chưa test thử.

Lau Cr Pắp viết 19:00 ngày 30/09/2018

thử rồi, vẫn lỗi

Sáng Béo viết 18:57 ngày 30/09/2018

bạn sửa
char *first = NULL, *last = NULL;
thành
char * first = NULL, last = NULL;
thử?

Lau Cr Pắp viết 18:54 ngày 30/09/2018

không thử cũng biết là không được. Bác đừng troll em

... viết 18:59 ngày 30/09/2018

Thử đi …

Sáng Béo viết 19:05 ngày 30/09/2018

không thử cũng biết là không được. Bác đừng troll em

hý. e ko biết mà.
nhưng e chạy thử bằng Dev C++ thì ra kết quả rồi nhé, chả lỗi đâu cả.
có lỗi là Dev bắt Main phải return int thôi.

Bài liên quan
0