我有一个数组,其中包含指向其他数组的指针.我想打印所有值,但我无法获得特定数组的sizeof.我究竟做错了什么?
int main(void){ int i, j; float T1[4]={1.1, 1.2, 1.3, 1.4}; float T2[6]={2.1, 2.2, 2.3, 2.4, 2.5, 2.6}; float T3[3]={3.1, 3.2, 3.3}; float T4[2]={4.1, 4.2}; float T5[4]={5.1, 5.2, 5.3, 5.4}; float *TAB[5]={T1, T2, T3, T4, T5}; for(i=0; i<5; i++){ for(j=0; j
Some program.. 7
你不能.一旦数组衰减到指针,您就不再拥有有关数组大小的信息.你需要以其他方式跟踪它.
在您显示代码的情况下,您可以拥有第二个数组
TAB_SIZES
,其中包含指向的数组的大小TAB
.
还要记住,对于任何数组或指针
p
和索引i
,表达式p[i]
都等于*(p + i)
.这意味着你不必这样做*(TAB[i]+j)
.相反TAB[i][j]
,这对大多数人来说更"自然".
1> Some program..:你不能.一旦数组衰减到指针,您就不再拥有有关数组大小的信息.你需要以其他方式跟踪它.
在您显示代码的情况下,您可以拥有第二个数组
TAB_SIZES
,其中包含指向的数组的大小TAB
.
还要记住,对于任何数组或指针
p
和索引i
,表达式p[i]
都等于*(p + i)
.这意味着你不必这样做*(TAB[i]+j)
.相反TAB[i][j]
,这对大多数人来说更"自然".