Утечка памяти C++

Я только что написал код на C++, который выполняет некоторые манипуляции со строками, но когда я пробежал valgrind, он показывает некоторые возможные утечки памяти. Отлажив код до гранулированного уровня, я написал простую программу на C++, выглядящую следующими словами:

#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
        std::string myname("Is there any leaks");
        exit(0);
}

и запуск valgrind над ним я получил:

==20943== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 26 from 1)
==20943== malloc/free: in use at exit: 360,645 bytes in 12,854 blocks.
==20943== malloc/free: 65,451 allocs, 52,597 frees, 2,186,968 bytes allocated.
==20943== For counts of detected errors, rerun with: -v
==20943== searching for pointers to 12,854 not-freed blocks.
==20943== checked 424,628 bytes.
==20943== 
==20943== LEAK SUMMARY:
==20943==    definitely lost: 0 bytes in 0 blocks.
==20943==      possibly lost: 917 bytes in 6 blocks.
==20943==    still reachable: 359,728 bytes in 12,848 blocks.
==20943==         suppressed: 0 bytes in 0 blocks.
==20943== Reachable blocks (those to which a pointer was found) are not shown.
==20943== To see them, rerun with: --show-reachable=yes

Затем меня поразило, что мы принудительно вышли (что я и выполнил в своем оригинальном коде C++). Теперь проблема в том, что я хочу выйти из программы, так как мой предыдущий старый код ожидает состояния выхода нового кода. Например, двоичный файл a.out ожидает выхода из состояния b.out. Есть ли какой-либо способ избежать утечек памяти, или я должен действительно беспокоиться об утечках памяти, поскольку программа уже выходит в этот момент.

Это также поднимает для меня еще один вопрос, вреден ли такой код?

#include<stdio.h>
#include<cstdlib>
int main()
{
        char *p=(char *)malloc(sizeof(char)*1000);
        exit(0);
}
45
задан Global Warrior 20 November 2013 в 05:25
поделиться