我正在使用一个以这种方式创建多维数组的库:
const unsigned short arrayA[5] = {1, 2, 3, 4, 5};
const unsigned short arrayB[3] = {7, 8, 9};
const unsigned short *multiArray[] ={arrayA, arrayB};
我得到了它的值并且它有效:
printf("03: %d\n", multiArray[0][3]); //4
printf("12: %d\n", multiArray[1][2]); //9
当我需要获取任何数组的大小时,问题就来了,我试过这个:
printf("Size of first array: %ld \n", sizeof(multiArray[0])/sizeof(multiArray[0][0]));
它返回 2,可能是因为它使用了地址。
那我怎样才能得到数组的大小呢?
我必须这样做,尽量不改变数组的声明方式,所以数组已经存在,我只需要获取大小。
有什么办法吗?