我是C ++的新手(从Java移植),我无法理解代码中是否有内存泄漏。
这是我的代码的基础(它更复杂,我带来了内存泄漏的重要位置)
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
}
我的问题是,我是否需要释放消息[]和allMessages []?
谢谢!
答案 0 :(得分:4)
没有。通常,在C ++中,如果您使用关键字new
,那么您之后也应该delete
。您的变量是静态分配的,不需要删除。
答案 1 :(得分:0)
不,不是因为它们没有动态分配。如果内存分配了delete
:
new
int *a = new int [5]; //must call delete [] or memory leak
int b [5]; //no need