c++ - 是否有一个 int* x = new int 实际上有用的重要示例?

标签 c++

我正在学习 C++,我遇到了两个新案例:

  • int * x = new int动态创建对象 x . (int当然可以换成其他类型)。

  • int *y = new int[<other variable>]动态创建数组对象 y .

可以理解,第二种情况对于创建一个我们在编译时不知道其大小的数组非常有用。

问题

有没有真正需要第一种情况的实际有用的例子?我的理解有什么问题吗?

最佳答案

想象一些将异步完成的任务,并且将产生一个整数结果。您需要能够为异步任务逻辑提供一个指向存储结果的整数的指针,并且您需要确保该整数在异步任务期间位于内存中的同一位置。

您需要动态分配一些包含该长生命周期整数的结构。如果该整数确实是您所需要的全部,那么动态分配该整数本身可能是有意义的。

然而,在现实中,存在一些问题:

  1. 为此使用 unique_ptrshared_ptr 可能更有意义,以使生命周期的管理更加理智。
  2. 在几乎所有实际情况下,您需要的不仅仅是那个整数。例如,您可能需要某种方式来同步安全访问该整数或执行任务的某些句柄。

关于c++ - 是否有一个 int* x = new int 实际上有用的重要示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54044687/

相关文章:

c++ - 到达顶部后将正方形放在左侧

c++ - 传递参数之间的区别

c++ - 静态变量声明和定义

c++ - 零长度位域的实际使用

Android NDK/JNI - 对自定义头文件中定义的函数的 undefined reference

c++ - 为什么 Visual Studio 正在删除我的反斜杠字符串

c++ - 寻找最有效的数据结构来创建索引文件

C++、SDL、函数在首次启动后似乎没有改变主界面

c++ - arm-linux-androideabi-gcc : get unrecognized command line option when passing -mmacosx-version-min argument

C++ Visual Studio 2013 展开对象