相关疑难解决方法(0)

C中结构数组'sizeof'的结果?

在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进行编译.

c arrays struct sizeof

31
推荐指数
3
解决办法
6万
查看次数

sizeof作为函数参数传递的数组

可能重复:
函数参数中的数组长度

嗨,我正在做作业,我完全难过.我们假设让列表的每个顺序都是一个整数数组,所以我根据老师的伪代码编写了这段代码:

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)是正确的方法.

c++ recursion

7
推荐指数
2
解决办法
414
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

recursion ×1

sizeof ×1

struct ×1