Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 数组的len始终为2 int*a[4]={ (int[]){1}, (int[]){-4,-5}, (int[]){-4,-5,0}, (int[]){1,3,4,6} }; 对于(i=0;i_C_Multidimensional Array - Fatal编程技术网

C 数组的len始终为2 int*a[4]={ (int[]){1}, (int[]){-4,-5}, (int[]){-4,-5,0}, (int[]){1,3,4,6} }; 对于(i=0;i

C 数组的len始终为2 int*a[4]={ (int[]){1}, (int[]){-4,-5}, (int[]){-4,-5,0}, (int[]){1,3,4,6} }; 对于(i=0;i,c,multidimensional-array,C,Multidimensional Array,我知道这不是一个正确的方法,但len总是2。有人能解释为什么len两岁吗?它是一个未定义的行为吗?如果不是,它是如何计算的?a[i]是指向int的指针sizeof(a[i])将返回sizeofint*,而不是它所指向的数组。在64位计算机上,指针的大小为8字节,int的大小为4字节8/4=2哦,是的。这很简单。我不知道为什么它弄糊涂了我的头。无论如何,谢谢。如果你的代码中没有多维数组。是的,就是指针数组。我自己标记了要删除的问题。你不需要自己标记要删除的问题,相反,你可以选择实际删除它,因为你是

我知道这不是一个正确的方法,但len总是2。有人能解释为什么len两岁吗?它是一个未定义的行为吗?如果不是,它是如何计算的?

a[i]
是指向
int
的指针
sizeof(a[i])
将返回sizeof
int*
,而不是它所指向的数组。在64位计算机上,指针的大小为
8
字节,
int
的大小为
4
字节<代码>8/4=2

哦,是的。这很简单。我不知道为什么它弄糊涂了我的头。无论如何,谢谢。如果你的代码中没有多维数组。是的,就是指针数组。我自己标记了要删除的问题。你不需要自己标记要删除的问题,相反,你可以选择实际删除它,因为你是问题的作者。如果问题有答案,你不能删除它。
int *a[4] = {
    (int[]){ 1},
    (int[]){ -4, -5},
    (int[]){ -4, -5, 0},
    (int[]){ 1, 3, 4, 6}
};

for (i = 0; i < 4; i++)
    len = sizeof(a[i])/sizeof(int);