1. Illegal memory access
int main()
{
int* ptr;
int num = ptr[0];
}
int main()
{
int* ptr = new int(42);
delete ptr;
delete ptr;
}
int main()
{
int ary[5];
ary[5] = 42;
}
2. Allocating to much memory
int main()
{
for(;;)
{
int* ptr = new int[1000000000];
}
}
int main()
{
int ary[1000000000];
ary[0] = 42;
}
void fct()
{
fct();
}
int main()
{
fct();
}
3. Unsolved error handling
#include <assert.h>
int main()
{
int* ptr = nullptr;
assert(ptr);
}
#include <exception>
int main()
{
throw std::exception();
}