当前位置:  开发笔记 > 编程语言 > 正文

如何使用指针确定C中的sizeof数组?

如何解决《如何使用指针确定C中的sizeof数组?》经验,为你挑选了1个好方法。

我有一个数组,其中包含指向其他数组的指针.我想打印所有值,但我无法获得特定数组的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],这对大多数人来说更"自然".

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有