c语言中结构中的数组

c语言中结构中的数组,c,structure,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

这是我的密码。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++;
    }
}
我想显示两个数组。但我只得到了第一个索引。
有人能帮忙吗?

您传递的参数不合适

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

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

您不能像这样检查whilea[i]!='\0'

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

void displaytest(int *a, int size)
{
    int i = 0;
    while (i < size/sizeof(int))
    {
        printf("%d\n", a[i]);
        i++;
    }
}
displaytestchar*a->void displaytestint*a并放置原型。顺便说一句{7,8,9,0,1,2,3,4}:在0停。
displaytest(testDB[i].a, sizeof(testDB[i].a));