分享

请教:C语言中,如何确定整个二维数组的大小?

 ada_lib 2015-01-04
                              比如这样一个二维数组:
unsigned char DATA[][16] = 
{

{0x20,0x04,0x20,0x04,0x22,0x42,0x22,0x82,0xFE,0x7F,0x21,0x01,0x21,0x01,0x20,0x10},
{0x20,0x10,0xFF,0x08,0x20,0x07,0x22,0x1A,0xAC,0x21,0x20,0x40,0x20,0xF0,0x00,0x00},


{0x80,0x00,0x40,0x00,0xF0,0x7F,0x1C,0x00,0x03,0x00,0xF0,0x7F,0x01,0x00,0x0E,0x00},
{0x04,0x00,0x00,0x00,0x04,0x00,0x04,0x20,0x04,0x40,0xFC,0x3F,0x00,0x00,0x00,0x00},


{0x20,0x00,0x20,0x80,0x20,0x40,0x20,0x20,0x20,0x10,0x20,0x0C,0xA0,0x03,0x7F,0x00},
{0xA0,0x01,0x20,0x06,0x20,0x08,0x20,0x30,0x20,0x60,0x20,0xC0,0x20,0x40,0x00,0x00},


{0x00,0x00,0x18,0x29,0x04,0x29,0x14,0x15,0x94,0x14,0x94,0x4A,0xD5,0x89,0xB6,0x44},
{0x14,0x3F,0x14,0x06,0x94,0x09,0x04,0x09,0x14,0x10,0x0C,0x30,0x04,0x10,0x00,0x00},

};


要用sizeof求其总的大小(不是到\0就结束那种)
方法,用sizeof

程序1:
C/C++ code?
1
2
3
4
5
void disp()
{
    printf("%d\n",sizeof(DATA));
    system("pause");
}


返回正确结果:128


程序2:
C/C++ code?
1
2
3
4
5
void disp(unsigned char s[][16])
{
    printf("%d\n",sizeof(s));
    system("pause");
}

返回结果:4
将sizeof(s)改为sizeof(*s),返回结果16


问题:
因为现在必须要用指针,也就是程序2的形势。可是不知道哪里错了,是指针类型不对?还是其他原因?应该怎么改?
谢谢!
更多 0 分享到:
相关主题推荐: 二维数组 c语言 printf 指针 c++
相关帖子推荐:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多