01/10/2018, 00:17

Làm thế nào để tạo mảng n phần tử để tiết kiệm bộ nhớ nhất

mình được học là phải tạo 1 mang trước
ví dụ như:

int a[100];
int n;
taoMang(a,n);
// đây là hàm tạo mảng
void taoMang(int *a, int &n)
{
	srand(time(NULL));
	cout << "Nhap so phan tu cua mang: ";
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		a[i] = rand() % 99 - 30;
	}
}

vậy có cách nào để mình có thể tạo mảng mà không cần gõ dòng
int a[100]; vào hay không?

Nguyễn Tấn Khoa viết 02:33 ngày 01/10/2018

Bạn có thể dùng cấp pháp động hoặc dùng vector

Người bí ẩn viết 02:21 ngày 01/10/2018

Sửa lại như sau là ok theo ý bạn:

int *a; // Đây là con trỏ
int n;
taoMang(a,n);
// đây là hàm tạo mảng
void taoMang(int *&a, int &n)
{
	srand(time(NULL));
	cout << "Nhap so phan tu cua mang: ";
	cin >> n;
        a = (int *)malloc(n * sizeof(int)); // thêm dòng này vào
	for (int i = 0; i < n; i++)
	{
		a[i] = rand() % 99 - 30;
	}
}

Note: Nếu bạn đang học mảng, chưa học tới con trỏ thì không cần phải quan tâm tới vấn đề này !

Bài liên quan
0