Я получаю ошибки для приведенного ниже кода как
(18): ошибка C2064: термин не оценивается для функции, принимающей 1 аргумент *
(18): ошибка C2227: слева от'-> str' должен указывать на класс / структуру / объединение / универсальный тип
(20): ошибка C2064: термин не оценивает функцию, принимающую 1 аргумент
(20): ошибкаC2227: слева от '-> str' должно указывать на класс / структуру / объединение / универсальный тип
Я объявил * p как указатель на структуру в главной функции.Я не мог определить, где я совершил ошибку. Разве * 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;
}