c++ - Qt C++ 删除 QList<float**> 中的 float** 元素

标签 c++ arrays qt delete-operator

我有一个 QList<float**> .我首先迭代元素以使用它们:

for( int i = 0 ; i < nb ; i++ )
{
    float** data1 = data_list.at( i ) ;
    float** data2 = data_list.at( i + 1 ) ;
    // do things with data1 and data2

}

如果我 delete[] 会发生什么以 C 风格的方式 data1data2在这个循环里面?元素是否位于 i 位置和 i+1data_list也被销毁(以便 i 无法再访问它们)?

最佳答案

它是一个float**的列表。他们指向的 float* 不在列表中。 这意味着如果您使用 delete[],内存将被释放,但 data_list 本身不会改变。在此之后,它们将成为无效指针。

关于c++ - Qt C++ 删除 QList<float**> 中的 float** 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13818351/

相关文章:

qt - 通过qt在gnuplot中保存pdf输出

c++ - 在 Windows 上构建 maliit 框架时未定义对 `DummyInputMethod3::staticMetaObject' 的引用

c++ - 为什么与 Direct X 链接会大大增加我的程序大小?

c++ - 使用矩阵从c++中的函数返回二维数组

c++ - 我应该如何使用 openCV 创建矩阵数组

iOS核心数据: Fetch child Magical Record data

c++ - 将信号连接到 Qt 中的插槽时出现问题

c++ - 为什么 C++ 中的 read() 需要一个指向 char 的指针

c++ - C++ 中的 Ukkonen 算法

c++ - C++ 中 func(int& x) 和 func(int &x) 的区别