30/09/2018, 16:33

hỏi về khai báo mảng 1 triệu phần tử

cho e hỏi có ai biết cách khai báo mảng một triệu phần tử không ạ

Nguyễn Minh Dũng viết 18:43 ngày 30/09/2018

Câu hỏi này @phamduykhanhspkt hỏi cho C# hay C++ nhỉ?

Giả sử giờ mình tạo 1 triệu phẩn từ kiểu int. Với 1 phần tử là 4 bytes, 1000000 phần tử là 4000000 bytes = 4 MB of RAM. Nhiêu đây không ăn thua gì với máy 8GB of RAM của mình

C++ dùng array với khai báo static. Phải dùng static mảng của mình không lưu trên stack. Hình như stack size trên Windows chỉ có 1-2MB thôi. Không đủ chứa mảng bự quá, máy mình là x64, có thể tạo được tầm int a[521000]; mà không bị crash. Thêm nữa là crash ngay.

#include <iostream>

int main() {
    static int a[1000000];
    return 0;
}

Hoặc dùng vector

#include <vector>

int main() {
    std::vector<int> v(1000000);
    return 0;
}

C# thì Đạt không làm nhưng thấy người ta làm thế này

const int length = 1000000;
var items = new Item[length];
Khánh Phạm viết 18:42 ngày 30/09/2018

thank a nhìu nha
với e đang làm ứng dụng trên winfrom làm cái file txt có 1 triệu phần tử rùi cho nó sắp xếp a ơi

Nguyễn Minh Dũng viết 18:47 ngày 30/09/2018

Nếu vậy thì sử dụng vector đi @phamduykhanhspkt ơi

Bài liên quan
0