1
在ubuntu 13.04 64bit下運行以下示例代碼,使用intel編譯器14工具鏈安裝了16 GB內存。c + + stdlib.h system()命令在分配8GB內存後無法工作
我的應用程序 在驗證點進行分類後,我的系統(「做某事bashy ..」)有問題,無法工作。 經過幾個小時的爭鬥後,我意識到,我在該特定點分配8GB內存的事實不允許我使用system()命令。不用說,這是我分配的內存,我可以自由地使用系統。
代碼片段:
#include <string.h>
#include <iostream>
#include "stdlib.h"
int main() {
char ** buffer = new char*[100];
system("logger TRYING..!");
for(int i= 1; i<=80; i++)
{
buffer[i] = new char[200*1000*1000];
}
system("logger SUCCESS..!");
return 0;
}
感謝您的幫助..!
'系統'函數分出一個新進程,當新進程創建爲父進程,分配內存和全部進程的副本時,這有效地將分配的內存量加倍。 – 2014-09-02 13:30:12
80 * 200 * 1000 * 1000 =接近16 GB,而不是8。 – IronMensan 2014-09-02 13:41:39