apologies if this is some stupid mistake I've made, I'm just a rookie.
First off, I have created a struct;
struct StarsStruct
{
int SerialNumber;
char StarName[10];
double x;
double y;
};
Then, I've created an array of struct pointers using; (NumberOfStars is just an int variable) This was declared and initialised at the top of the program, before any if statements.
struct StarsStruct *Stars = malloc(sizeof(struct StarsStruct) * NumberOfStars);
And I have done a for loop to change the values of the members, in my struct array;
for (int i = 0; i < NumberOfStars; i++)
{
r1 = rand() % (60 + 1 - 0) + 0;
r2 = rand() % (30 + 1 - 0) + 0;
Stars[i].SerialNumber = i;
Stars[i].x = r1;
Stars[i].y = r2;
Plot(r1, r2, '.');
}
However, when I go to my second IF statement, for some reason these values are completely erased;
full part of the code;
if (strcmp(CurrentCommand, "bang") == 0)
{
Clear();
printf("Enter the number of stars to be created: ");
scanf("%d", &NumberOfStars);
//Stars = malloc(sizeof(struct StarsStruct) * NumberOfStars);
for (int i = 0; i < NumberOfStars; i++)
{
r1 = rand() % (60 + 1 - 0) + 0;
r2 = rand() % (30 + 1 - 0) + 0;
Stars[i].SerialNumber = i;
Stars[i].x = r1;
Stars[i].y = r2;
Plot(r1, r2, '.');
}
}
else if (strcmp(CurrentCommand, "list") == 0)
{
Stars[0].SerialNumber;
Stars[1].y;
Stars[2].SerialNumber;
Stars[3].SerialNumber;
Stars[4].x;
Stars[5].y;
for (int i = 0; i < NumberOfStars; i++)
{
printf("%d", Stars[0].SerialNumber);
}
}
Aucun commentaire:
Enregistrer un commentaire