如何输出一个结构体中的数组??

typedef struct
{
char *ch;
int length;
} Str;
假设中间已经给str进行了赋值操作

for(p=0;p<str.length;p++)
{
printf("%d\n",str.ch[p]);}
最后想输出str中的每一个数据要怎么做??为什么上面的for循环不行

首先你的循环的判断p<str.length,C语言中这样是获取不到长度的,你可以试试p<sizeof(str)/sizeof(str[0]);


输出语句改成 printf("%s,%d", str[i].ch, str[i].length);就可以输出了

typedef struct
{
    char *ch;
    int length;
} Str;
int main() {
    Str str[2] = {{"ab",1},{"cd",2}};
    for(int p=0;p<sizeof(str)/sizeof(str[0]);p++){
        printf("%s,%d\n",str[p].ch,str[p].length);
    }
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答