c中结构中的数组

时间:2014-05-05 10:06:50

标签: c structure

这是我的代码。 main应该只有调用函数。 testcases()调用通过该程序运行的测试用例。

#include<stdio.h>
#include"conio.h"
int main()
{
    testcases();
}
struct test {
    int a[10];
} testDB[5] = {
    {1,2,3,4,5,6},
    {7,8,9,0,1,2,3,4}
};

void testcases()
{
    int i;
    for(i=0;i<2;i++)
    displaytest(testDB[i].a);
}

displaytest(char *a)
{
    int i=0;
    while(a[i]!='\0')
    {
        printf("%d\n",a[i]);
        i++;
    }
}

我想显示两个数组。但我只得到第一个索引。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您传递的参数不合适;

displaytest(char *a) --> void displaytest(int *a)

编辑:您的while循环无法正常工作,如第一条评论中所述。

答案 1 :(得分:0)

您无法像while(a[i]!='\0')

那样查看

您必须将数组的大小作为第二个参数传递。

void displaytest(int *a, int size)
{
    int i = 0;
    while (i < size/sizeof(int))
    {
        printf("%d\n", a[i]);
        i++;
    }
}

打电话时,你可以这样打电话......

displaytest(testDB[i].a, sizeof(testDB[i].a));