Этот вопрос из чистого любопытства. Недавно я узнал, что очень важно удалить пространство памяти, если оно динамически выделяется в куче. Мой вопрос, возможно ли удалить динамически выделенное пространство памяти, используя другую программу C ++ (из той, с которой было создано пространство памяти), если известен адрес области памяти?
Вот пример:
CODE01.CPP
#include <iostream>
using namespace std;
int main() {
int *a = new int;
cout << a;
int foo;
cin >> foo; // for blocking the program from closing.
return 0;
}
Выход для CODE01.CPP (скажем)
0x7c1640
CODE02.CPP
#include <iostream>
using namespace std;
int main() {
int *a = (int*)0x7c1640;
delete a;
return 0;
}
Будет ли это работать? Если я сначала запустите code01.cpp
, а затем сразу code02.cpp
, удалится ли память в куче?