为 C++ + OpenGL + QT 分配阵列
Allocating arrays for C++ + OpenGL + QT
我在QT + C++ + OpenGL项目中遇到了问题。主要问题是我需要使用 QText 区域来接收数组中的单元格数量,但我没有成功。事实是,由于数组是在项目开始运行的那一刻创建的,我需要重新调整它的大小,然后使用它......在使用 free() 后,我已经尝试使用 realloc(为我的数组重新分配更多内存),但是当我尝试这样做时,我的结果要么是意外的执行关闭,要么是很多疯狂的情节......我真正需要知道的是我是否可以将 TextArea 中的内容传递给我的类 CPonto(其中包含数组)然后构建数组,或者我是否应该使用 CPonto::reassign like 然后 realloc 或 free()+calloc()/malloc 数组来启动事情......我知道这有点复杂,但我也不明白我的问题,我认为免费+malloc/calloc会起作用......
正确的C++代码不应该使用C风格的内存分配(malloc()
,free()
,realloc()
等)。相反,只需将可调整大小的数组存储为标准C++可调整大小的数组 - 一个std::vector
。或者,如果你更喜欢Qt容器,QVector
(但我个人更喜欢任何一天std
容器)。
无论如何,为了解决您的realloc()
问题本身:顾名思义(和文档指定),realloc()
重新分配内存。这意味着它必须首先接收有效内存。所以你称realloc()
而不是free()
,而不是在它之后。
你可以对数组使用指针定义!假设你有一个整数数组喜欢
`int myarray[10];`
您可以使用:
`int * myarray; //in the init
.....
have your data from textbox and put it in N
....
myarray = new int(N);
....`
并像普通数组一样使用 myarrayl
相关文章:
- 二维阵列的动态分配
- 为什么删除分配的阵列会导致内存错误?
- 新的阵列分配
- 分配给阵列时出现分段错误?黑客排名 2D 阵列 - DS.
- 分配/访问2d阵列,使得2d子块是连续的
- 重新分配2D阵列并删除旧阵列
- 轻松C++阵列分配
- 英特尔并行工作室 2015 C++中的 2D 动态分配全局阵列
- 解除分配此特定 2D 阵列的内存
- 我可以在堆栈上分配`std :: array`阵列,而不知道编译时大小
- 通过"Value Template Argument"与常规阵列在堆栈中分配内存
- C - 将所有分配的双阵列对齐至32 bytes
- 重新分配指针阵列的一部分的安全方法
- 动态分配'string'阵列
- 未分配阵列上的编号
- 与其所有者一起分配阵列的正确方法
- 为 C++ + OpenGL + QT 分配阵列
- 分配阵列时bad_alloc
- C++中2D动态内存分配阵列中的空闲分配内存
- C++中的2D动态内存分配阵列