指向struct变量的指针数组

时间:2011-08-15 05:07:51

标签: c

我收到以下代码的错误

(18):错误C2064:术语不评估为采用1个参数的函数

(18):错误C2227:' - > str'的左边必须指向class / struct / union / generic type

(20):错误C2064:术语不评估为采用1个参数的函数

(20):错误C2227:' - > str'的左边必须指向class / struct / union / generic type

我已将* p声明为main函数中指向struct的指针。 我无法确定我在哪里犯了错误.Isnt * p类似于* p + 0?

#include "stdafx.h"
#include<stdio.h>

int main()
{
    struct s1{
        char *str;
        struct s1 *ptr;
    };
    static struct s1 arr[]={{"Bangalore",arr+1},{"Hyderabad",arr+2},{"Kerala",arr}};
    struct s1 *p[3];
    int i;
    for(i=0;i<=2;i++)
        p[i]=arr[i].ptr;
    printf("\n%s"(*p)->str);
    printf("\n%s",(++*p)->str);
    printf("\n%s"((*p)++)->str);
    return 0;
}

1 个答案:

答案 0 :(得分:2)

您的代码中缺少逗号:

printf("\n%s"(*p)->str);
...
printf("\n%s"((*p)++)->str);

应该是:

printf("\n%s", (*p)->str);
...
printf("\n%s", ((*p)++)->str);

您在此处发布的代码或实际代码中是否缺少它们?