Вот такой простой код приводит к undefined behaviour.
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
char*str="Hello, world";
cout <<str<<endl;
str[6]='!';
cout <<str<<endl;
return EXIT_SUCCESS;
}
А все потому ,что строковый литерал есть "массив с надлежащим количеством константных символов", и, следовательно, присваивание константе незаконно. И поймать это можно только в рантайме. В моем тестовом случае это привело к segmentation fault.