-
20-03-2011, 08:47 AM #1Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Xử lý lỗi tràn bộ nhớ stack trong VC++?
Có bài toán về dân số:
Cho 1 file chứa 7 tỉ số liệu về tuổi dân số của 1 vùng, ví dụ: 1 1 2 3 3 2 5 6 ....
trong quá trình tính toán cần sử dụng các số liệu trên.
Em đã sử dụng mảng để ghi dữ liệu trên vào tuy nhiên khi sử dụng mảng thì bị giới hạn về kích thước ô nhớ stack! Mong các anh,chị cho em giải pháp để khắc phục bài toán này ạ???View more random threads:
- Icon trên title bar trong AppWizard MFC
- chương trình đọc số
- Hàm wcscpy_s, wcscat_s, wcsstok_s dùng như thế nào?
- Tạo ngẫu nhiên một String trong C như thế nào?
- Trục trặc trong việc tạo một dialog đơn giản
- Lỗi MessageBox
- Không hiển thị Menu Trong Form Của VC++ 2008
- Hàm MakeWord trong Visual C++ có ý nghĩa gì?
- Cách sửa thông tin trong file như thế nào?
- Dùng con trỏ hàm trong template Class
-
20-03-2011, 03:43 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mảng tĩnh thì lưu trên stack, stack thường bé nên chắc là lưu không được, bạn có thể dùng cấp phát động, cấp phát động lưu trữ trên heap, có kích thước lớn hơn nhiều. Nhưng có nhất thiết phải lưu hết tất cả vào mảng hay không ? (giải thuật ?)
-
20-03-2011, 04:46 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi birthis
À, em cũng thử sử dụng cấp phát bộ nhớ động:
int *p;
p=(int *) malloc(m*sizeof(int));
Tuy nhiên nếu m=7 tỉ thì nó vẫn báo lỗi ạ???
Em không biết xử lý thế nào nữa!
Tiện thể, anh(chị) cho em hỏi thêm: khi xử lý tệp, có lệnh nào đọc tệp mà khi gặp ký tự xuống dòng thì dừng không ạ? (hình như em thấy nó không đọc ký tự xuống dòng mà nó đọc luôn sang phần tử tiếp theo của tệp?? hic hic)
-
20-03-2011, 05:40 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thì bạn phải xem thử RAM của bạn và pagefile có đáp ứng được dung lượng này không, vì 7 tỉ nhân với 4 byte thì cũng ra xấp xỉ 7GB rồi còn gì. Như vậy giải thuật này là không dùng được rồi.
Đọc tệp thì bạn có thể tìm hiểu về lệnh fscanf, và những tùy chọn của nó. Nó tương tương như lệnh scanf đó.
Tham khảo về lệnh scanf ở đây: http://forums.congdongcviet.com/showthread.php?t=34612
-
25-03-2011, 02:45 PM #5Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi birthis
-
25-03-2011, 06:40 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
nếu mà làm đến 7 tỉ đơn vị dự liệu thì bạn nên làm theo kiểu băm ra thành block, và ta sẽ thao tác trên block như kiểu đánh địa chỉ của CPU vậy
Ngoại trừ một số ít trường hợp rãnh mũi - má và “râu rồng silicon” xuất hiện sớm, có khi từ tuổi thanh niên do cơ địa, còn lại, đại đa số do căn do lão hoá đã gây nên ba diễn biến: Giảm mô xương gò...
Cách thẩm mỹ má ở tuổi trung niên...