У меня есть следующий код:
#include <stdio.h>
struct datos_nut
{
char nombre[17];
float calorias;
float proteinas;
float colesterol;
float fibradietetica;
};
struct datos_nut *p;
struct datos_nut (*frutos)[4]= &(struct datos_nut[4]){
{"Aguacate", 2.33, 0.018, 0, 0.07},
{"Almendra", 6.1, 0.187, 0, 0.143},
{"Fresa", 0.35, 0.008, 0, 0.002},
{"Berenjena", 0.22, 0.012, 0, 0.0137}
};
void main(void)
{
p = *frutos;
printf("%s",(*p)[3].nombre);
}
При попытке компиляции выдается следующая ошибка:
Значение ошибки [Error] не является ни массивом, ни указателем, ни вектором
в строке printf (). Всякий раз, когда я использую p вместо * p , он компилируется и работает отлично.
Также, если я использую (* frutos) [3] .nombre скомпилировать без ошибок и работает, разве это не должно работать с использованием * p ?
Может кто-нибудь указать мне, в чем здесь проблема и почему она работает на * frutos, но не на * p?
Я пытаюсь этот код, используя DevC ++ в Windows 10.