Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by NguyenVietNamSon ( 5 years ago )
// Để hiểu rõ hơn về những code trong hàm này thì em xem bài viết anh đã gửi nha
void REALLOC(int *&a, int oldSize, int newSize)
{
	int *temp = a;

	a = new int[newSize];

	int Min = min(oldSize, newSize);
	for(int i = 0; i < Min; ++i)
		a[i] = temp[i];

	delete[] temp;
}

void DocFile(int*& a, int& n, ifstream& FileIn)
{
	n = 20; // cho trước 20 ô
	a = new int[n];

	int cnt = 0; // số lượng phần tử trong mảng ngay hiện tại

	while(!FileIn.eof())
	{
		int x;
		FileIn >> x;

		// Mảng vẫn còn có thể chứa được
		if(cnt < n)
			a[cnt++] = x;
		else // Mảng đã dùng hết số ô nhớ đang có, lúc này cần REALLOC thêm gấp 2 lần hiện tại
		{
			REALLOC(a, n, 2 * n);
			n *= 2;
		}
	}
	// Sau cùng khi đã đọc hết số lượng phần tử đang có trong file thì sẽ REALLOC lại theo đúng kích thước thực sự và cập nhật lại n lúc này là số lượng phần tử mà mảng đang chứa
	REALLOC(a, n, cnt);
	n = cnt;
}

 

Revise this Paste

Your Name: Code Language: