发布网友 发布时间:2022-04-23 01:16
共2个回答
热心网友 时间:2023-10-09 21:39
你怎么建一个int 二维数组,就怎么建 自定义类Dog的二维数组,不同的是int是存储一个整数值,Dog是个对象,那么就需要指针了,否则一个类对象占用内存太多,对象元素排序什么的操作特别麻烦还耗时。
定义元素为整数的二维数组
int a[8][8];
定义元素为Dog指针的二维数组,数组指针pDog,每个元素为 Dog的指针,然后创建只狗。
Dog * pDog[8][8];
for (i=0 ;i<8;i++)
for (j=0;j<8;j++)
pDog[i][j]=new Dog();//对每个元素(DOG指针)赋值,赋值为创建对象返回对象地址。
热心网友 时间:2023-10-09 21:39
一,如nuclear_all(怒) 所言,分配一维数组,自行二维处理。
array[c][r] 等价于 array[c*rows+r] rows,你的二维数组列数
二,使用c99支持的动态数组,不过不是每个编译器都支持
三,动态分配二维数组,不过列数要固定,而且语法麻烦
比如用 malloc:
int (*p)[5] //5列
p=(int * [5])malloc(sizeof(int)*cols*rows)
还是第一种好,是吧。