[問題] allocate more than 4GB
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
vc2010
問題(Question):
malloc 有辦法一次超過 4 GB 嗎?
我拿下面這段碼去測某台 PC, 結果超過了 4GB,
但實務上我沒辦法一次 malloc 那麼大 (引數也只是 size_t),
請問是否有其他方式可處理掉?
程式碼(Code):(請善用置底文網頁, 記得排版)
#define MB (1024*1024)
size_t mb=0;
while(malloc(MB)) ++mb;
printf("%u (mbs)\n", mb);
補充說明(Supplement):
另在這段像在 「 燒機 」的程式碼, release mode 下會被完全忽略,
不知是否有方式讓它正常運作?謝謝各位。
--
If there is no tomorrow,
I want to see u last time.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.161
推
04/06 20:42, , 1F
04/06 20:42, 1F
→
04/06 20:43, , 2F
04/06 20:43, 2F
推
04/06 20:43, , 3F
04/06 20:43, 3F
→
04/06 20:48, , 4F
04/06 20:48, 4F
→
04/06 20:49, , 5F
04/06 20:49, 5F
→
04/06 20:49, , 6F
04/06 20:49, 6F
推
04/06 21:09, , 7F
04/06 21:09, 7F
→
04/06 21:11, , 8F
04/06 21:11, 8F
不好意思,想再多問幾句。
void * malloc ( size_t size );
我不確定 x86/x64 對於 size_t 定義是否完全不同 (可能需要請人幫忙驗證),
但是否不用再特別強調 unsigned long long 當引數,自然而然用 size_t 即可?
※ 編輯: EdisonX 來自: 180.177.76.161 (04/06 21:31)
→
04/06 21:34, , 9F
04/06 21:34, 9F
→
04/06 21:35, , 10F
04/06 21:35, 10F
→
04/06 21:39, , 11F
04/06 21:39, 11F
→
04/06 21:40, , 12F
04/06 21:40, 12F
→
04/06 21:46, , 13F
04/06 21:46, 13F
→
04/06 21:59, , 14F
04/06 21:59, 14F
→
04/06 22:01, , 15F
04/06 22:01, 15F
→
04/06 22:01, , 16F
04/06 22:01, 16F
→
04/06 22:02, , 17F
04/06 22:02, 17F
→
04/06 22:06, , 18F
04/06 22:06, 18F
→
04/06 22:07, , 19F
04/06 22:07, 19F
→
04/06 22:07, , 20F
04/06 22:07, 20F
→
04/06 22:22, , 21F
04/06 22:22, 21F
→
04/06 22:22, , 22F
04/06 22:22, 22F
推
04/06 22:33, , 23F
04/06 22:33, 23F
→
04/06 22:34, , 24F
04/06 22:34, 24F
→
04/06 22:40, , 25F
04/06 22:40, 25F
→
04/06 22:42, , 26F
04/06 22:42, 26F
→
04/06 22:54, , 27F
04/06 22:54, 27F
→
04/06 22:54, , 28F
04/06 22:54, 28F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章