gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) запустить мой код будет coredump. Valgrind сообщение:libstdC++ invalid free std :: string
==14892== Invalid free()/delete/delete[]/realloc()
==14892== at 0x4C2B343: operator delete(void*) (vg_replace_malloc.c:502)
==14892== by 0x53404DE: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==14892== by 0x5AE2258: __run_exit_handlers (exit.c:82)
==14892== by 0x5AE22A4: exit (exit.c:104)
==14892== by 0x5AC7ECB: (below main) (libc-start.c:321)
==14892== Address 0x55892e8 is in the BSS segment of /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
, когда я использую GCC версии 4.7.2 20121015 (Red Hat 4.7.2-5) (GCC), он не будет CoreDump.
EDIT:
вчера, я узнал, ошибка моих кодов. например: static array[1024][4]; array[1023][4] = '\0'; // this destroy other object
после того, как я изменил этот код, он работает хорошо.
«Это ошибка gcc?» Скорее всего, это будет ошибкой в вашем коде. – Mat
Можете ли вы предоставить минимальный пример исходного кода, который вызывает проблему? –