Mam taką funkcję:
int i_func_call(int iArg1, int iArg2)
{
int *pi_result;
pi_result = new int();
*pi_result = iArg1 + iArg2;
return (*pi_result);
}
int main()
{
int a = i_func_call(4, 5);
std::cout << a;
return 0;
}
Chciałbym dobrze zrozumieć czemu powoduje ona wyciek pamięci.
- Bo zmienna pi_result jest lokalna i jest usuwana po wykonaniu funkcji?
- Bo nigdzie nie usuwam pi_result.
- Jakiś inny powód?