LINUX.ORG.RU

История изменений

Исправление Ivan_qrt, (текущая версия) :

#include <iostream>

int* foo() {
        return new int[9223372036854775000 / sizeof(int)];
}

int main() {
        int* ptr = foo();
        std::string msg{"Hello world!"};
        std::cout << msg << ptr[10] << std::endl;
        delete[] ptr;
}
$ g++ -std=c++20 -O3 -fno-exceptions /tmp/test.cpp -o /tmp/test && /tmp/test
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Аварийный останов (образ памяти сброшен на диск)

Исходная версия Ivan_qrt, :

#include <iostream>

int* foo() {
        return new int[9223372036854775000 / sizeof(int)];
}

int main() {
        int* ptr = foo();
        std::string msg{"Hello world!"};
        std::cout << msg << ptr[10] << std::endl;
        delete[] ptr;
}
$ g++ -std=c++20 -O3 -lfmt -fPIC -fno-exceptions /tmp/test.cpp -o /tmp/test && /tmp/test
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Аварийный останов (образ памяти сброшен на диск)