Erro Valgrind: em uso na saída: 72.704 bytes Lista de inicialização C ++ estranheza com char *

Questão:

Eu tenho um problema estranho que eu não esperava. Eu tenho uma classe chamada Respostas e dentro do cabeçalho é este:

class Answer
{
    char* aText;
    bool b_correct;
public:
    Answer():aText(0){;}  //default constructor
}

O código principal do driver (teste) é este:

int main(void) 
{

    static const unsigned int MAX_ANSWERS = 5;
    Answer answers[MAX_ANSWERS];
}

A estranheza (inesperada) que estou percebendo é que há uma alocação acontecendo e ainda não usei uma nova em nenhum lugar do meu código. Eu estou supondo que o char * está chamando isso na lista de inicialização.

Estou usando o valgrind para testar meu código e estou recebendo 11 alocações e 10 liberações. Quando removo o inicializador de:aText(0), a alocação extra desaparece.

Eu entendo que este é um código mal construído. Estou seguindo um esboço do curso para aprender a escrever em C ++. Alguém pode me ajudar a entender como a memória é alocada ou o que está acontecendo durante a lista de inicialização para causar uma chamada para nova?

Eu sei que o erro está vindo do código mostrado. Eu sei que a alocação extra está acontecendo Quando eu compilar e executar apenas esse código.

Saída Valgrind:

==12598== Memcheck, a memory error detector
==12598== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==12598== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==12598== Command: ./Answers
==12598== 
==12598== 
==12598== HEAP SUMMARY:
==12598==     in use at exit: 72,704 bytes in 1 blocks
==12598==   total heap usage: 1 allocs, 0 frees, 72,704 bytes allocated
==12598== 
==12598== LEAK SUMMARY:
==12598==    definitely lost: 0 bytes in 0 blocks
==12598==    indirectly lost: 0 bytes in 0 blocks
==12598==      possibly lost: 0 bytes in 0 blocks
==12598==    still reachable: 72,704 bytes in 1 blocks
==12598==         suppressed: 0 bytes in 0 blocks
==12598== Rerun with --leak-check=full to see details of leaked memory
==12598== 
==12598== For counts of detected and suppressed errors, rerun with: -v
==12598== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Informações da plataforma:

Fedora 22

gcc.x86_64 5.1.1-4.fc22

valgrind.x86_64 1: 3.10.1-13.fc22

codeblocks.x86_64 13.12-14.fc22

questionAnswers(1)

yourAnswerToTheQuestion