在C中,我有一个结构数组定义如下:
struct D
{
char *a;
char *b;
char *c;
};
static struct D a[] = {
{
"1a",
"1b",
"1c"
},
{
"2a",
"2b",
"2c"
}
};
Run Code Online (Sandbox Code Playgroud)
我想确定数组中元素的数量,但sizeof(a)返回不正确的结果:48,而不是2.我做错了什么,或者sizeof这里根本不可靠?如果重要的话我正在使用GCC 4.4进行编译.
可能重复:
函数参数中的数组长度
嗨,我正在做作业,我完全难过.我们假设让列表的每个顺序都是一个整数数组,所以我根据老师的伪代码编写了这段代码:
void permute(int v[], int curr,char letters[])
{
if(curr >= sizeof(v)/sizeof(int))
{
checkit(v,letters);
}
for(int i = curr; i < sizeof(v)/sizeof(int); i++)
{
swap(i,curr,v);
permute(v,curr + 1,letters);
swap(v[curr],v[i]);
}//for
}//permu
Run Code Online (Sandbox Code Playgroud)
我唯一不确定的是,是否sizeof(v)/sizeof(int)是正确的方法.