c++ - 返回指向函数中声明的数据的指针

标签 c++ c pointers

我知道这行不通,因为变量 x 在函数返回时被销毁了:

int* myFunction()
{
    int x = 4;
    return &x;
}

那么我如何正确地返回一个指向我在函数中创建的东西的指针,我需要注意什么?如何避免内存泄漏?

我也用过malloc:

int* myFunction2()
{
    int* x = (int*)malloc(sizeof int); *x = 4; return x;
}

你如何正确地做到这一点 - 在 C 和 C++ 中?

最佳答案

对于 C++,您可以使用智能指针强制执行所有权转移。 auto_ptrboost::shared_ptr 是不错的选择。

关于c++ - 返回指向函数中声明的数据的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2320551/

相关文章:

c++ - 二进制数组的快速 Popcount 指令或汉明距离?

c - 将无符号字符数组传递给字符串函数

c - 用 djgpp 编译时 __MSDOS__ 是否仍然定义?

c - 取消对指针的引用

c++ - Qt 网页程序集 : configure kit

c++ - 我的方形 tetrimonos 一直奇怪地旋转,但我的其他 tetrimonos 旋转正常?

c - 如何链接到C 中的静态库?

c - 我应该如何在 C 结构中声明字符串?

c - 结构和文件处理

c++ - 为什么要嵌入脚本语言?