Create 2D array with “new”?
本问题已经有最佳答案,请猛点这里访问。
我想创建一个二维数组,如下所示。
1 | char **dog = new char[480][640]; |
但它的错误:
1 2 | error C2440: 'initializing' : cannot convert from 'char (*)[640]' to 'char ** ' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast |
使用"新建"需要做什么?(不使用calloc、malloc或
像这样:
1 2 3 | char **dog = new char *[480]; for (int i = 0; i < 480; i++) dog[i] = new char[640]; |
删除时也是这样,但首先是循环。
如果要从堆中获取内存,可以这样使用:
1 2 3 4 5 6 7 8 | // declaration char *dog = new char[640*480]; // usage dog[first_index * 640 + second_index] = 'a'; // deletion delete[] dog; |
您正在使用