Question

I'm new to C++ (porting from Java), and I cannot understand whether or not I have a memory leak in my code.

this is the basis of my code (it's far more complicated, I bring the important places where memory can leak)

char message[15000];
char allMessages[102400];
int allMessagesCounter;

int main() {
    connect() \\this works just fine
    openThreadAndGetAllMessages() \\ here I get each time a message to my message char array and concatenate it into allMessages array using allMessagesCounter
    cout << allMessages;
    disconnect() \\works just fine as well
}

My question is, do I need to free the message[] and allMessages[]?

Thanks!

Was it helpful?

Solution

No. In general, in C++, if you use the keyword new then you should also delete later. Your variables are allocated statically, and do not need to be deleted.

OTHER TIPS

No you do not because they are not dynamically allocated. You only need to call delete if memory is allocated with new:

 int *a = new int [5]; //must call delete [] or memory leak
 int b [5]; //no need
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top