История изменений
Исправление 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
Аварийный останов (образ памяти сброшен на диск)