質問するログイン新規登録

回答編集履歴

3

自分の環境でのテスト結果を記載

2018/12/27 02:08

投稿

takabosoft
takabosoft

スコア8356

answer CHANGED
@@ -3,4 +3,29 @@
3
3
  64bit用のEXEであれば理論上の上限は8Tbytesぐらいまでいけるそうなので(もちろんそんなにメモリを積んでいる環境は現実的ではないので上限はもっと少ないです)、そちらでの開発を検討してください。
4
4
 
5
5
  質問の回答としては相応しくないかもしれませんが、少ないメモリ量で大量のデータを処理する方法を検討した方が良いと思います。
6
- (HDDなどの大容量ストレージを使って少しずつ処理するなど)
6
+ (HDDなどの大容量ストレージを使って少しずつ処理するなど)
7
+
8
+ ----
9
+ 追記:
10
+ 自分の環境でもやってみましたが問題なさそうです。
11
+ Win10+64bit(メモリ32GB搭載)
12
+
13
+ ![イメージ説明](bc55d647277a85b3fe108133d02a578d.png)
14
+
15
+ ```c
16
+ #include "stdafx.h"
17
+ #include <Windows.h>
18
+
19
+ int main() {
20
+ double *p = NULL;
21
+ int rows = 190353991;
22
+ //printf("%dbit exe\n", sizeof(void *) * 8);
23
+ printf("malloc %ld bytes\n", rows * sizeof(double));
24
+ if ((p = (double *)malloc(rows * sizeof(double))) == NULL) {
25
+ fprintf(stderr, "\n Memory can not be allocated (%ld byte).\n", rows * sizeof(double));
26
+ exit(EXIT_FAILURE);
27
+ }
28
+
29
+ return 0;
30
+ }
31
+ ```

2

誤植

2018/12/27 02:08

投稿

takabosoft
takabosoft

スコア8356

answer CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  64bit用のEXEであれば理論上の上限は8Tbytesぐらいまでいけるそうなので(もちろんそんなにメモリを積んでいる環境は現実的ではないので上限はもっと少ないです)、そちらでの開発を検討してください。
4
4
 
5
- 質問の回答としは相応しくないかもしれませんが、少ないメモリ量で大量のデータを処理する方法を検討した方が良いと思います。
5
+ 質問の回答としは相応しくないかもしれませんが、少ないメモリ量で大量のデータを処理する方法を検討した方が良いと思います。
6
6
  (HDDなどの大容量ストレージを使って少しずつ処理するなど)

1

加筆

2018/12/27 01:55

投稿

takabosoft
takabosoft

スコア8356

answer CHANGED
@@ -1,3 +1,6 @@
1
1
  環境が書いていないので判りませんが、もし32bit用のexeであれば、どうあがいても使用できるメモリ上限は2GB程度です(実際には他にも利用されるので動的に確保できる量はそれ以下になります)。
2
2
 
3
- 64bit用のEXEであれば理論上の上限は8Tbytesぐらいまでいけるそうなので、そちらでの開発を検討してください。
3
+ 64bit用のEXEであれば理論上の上限は8Tbytesぐらいまでいけるそうなので(もちろんそんなにメモリを積んでいる環境は現実的ではないので上限はもっと少ないです)、そちらでの開発を検討してください。
4
+
5
+ 質問の回答としえは相応しくないかもしれませんが、少ないメモリ量で大量のデータを処理する方法を検討した方が良いと思います。
6
+ (HDDなどの大容量ストレージを使って少しずつ処理するなど)