Я запускаю следующий пример кода под ubuntu 13.04 64 бит, имеющий 16 ГБ памяти, установленный с помощью инструментария компилятора 14 компилятора.C++ команда stdlib.h() не работает после выделения памяти 8 ГБ
У меня возникла проблема с системой («сделайте что-нибудь бахи ..») не будет работать после моей заявки allocting at certein point. После того, как я столкнулся с проблемой в течение нескольких часов, я понял, что тот факт, что я выделяю память объемом 8 ГБ в определенном месте, не позволяет мне использовать команду 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;
}
Спасибо за помощь ..!
Функция 'system' открывает новый процесс, который эффективно удваивает количество выделенной памяти, поскольку новый процесс создается как дубликат родительского процесса, выделенной памяти и всех. –
80 * 200 * 1000 * 1000 = близко к 16 ГБ, а не 8. – IronMensan