回响_ 发表于 2024-1-17 10:45:24

C++快速入门--P36从函数或方法返回内存--课上代码1

#include <iostream>

int *newInt(int value)
{
        int *x = new int;
        *x = value;
       
        return x;
}




int main()
{
        int *a = newInt(20);
        std::cout << *a << std::endl;
    delete a;       
        a = NULL;
       
        return 0;
}

FishC 发表于 2024-1-17 10:46:15

代码中的问题是在使用完指针a之后没有释放内存。为了避免内存泄漏,需要在使用完指针a后手动释放内存。

可以在main函数最后添加如下代码来释放内存:

delete a;

完整的代码如下:

#include

int *newInt(int value)
{
    int *x = new int;
    *x = value;
   
    return x;
}

int main()
{
    int *a = newInt(20);
    std::cout << *a << std::endl;
   
    delete a;
   
    return 0;
}

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: C++快速入门--P36从函数或方法返回内存--课上代码1