Вы объявили указатель на struct AnimalSizes
, и вы объявили массив struct AnimalSizes[2]
, но вы не указали указатель на этот массив:
int main()
{
struct AnimalSizes *snakes = &animalSizes[0];
...
}
В качестве альтернативы, вы можете решите не объявлять глобальную переменную, а просто выделите память в main
:
#include <stdlib.c>
#include <stdio.h>
#include <string.h>
struct AnimalSizes {
char stringName[50];
double sizeLength;
};
int main()
{
struct AnimalSizes *snakes = (struct AnimalSizes*) malloc(2*sizeof(struct AnimalSizes));
strcpy(snakes[0].stringName,"Anaconda");
snakes[0].sizeLength=3.7;
strcpy(snakes[1].stringName,"Python");
snakes[1].sizeLength= 2.4;
printf("%c", *snakes[0].stringName);
printf("%lf", snakes[0].sizeLength);
printf("%c", *snakes[1].stringName);
printf("%lf", snakes[1].sizeLength);
free(snakes);
return 0;
}