So, I have this structure:
typedef struct{
    int serialNumber;
    char name[100];
    float price;
    int quantity;
 }Products;
And I created an array of structures dynamically.
The task was to 'simulate' a grocery store, with the user able to add and edit the items sold by the store. The following code snippets are for editing structure data.
void overwrite(Products store){
   printf("Enter new serial number: ");
   scanf("%d", &(store.serialNumber));
   getchar();
   printf("Enter new product name: ");
   fgets(store.name, 100, stdin);
   store.name[strlen(store.name)-1]='\0';
   printf("Enter new product price: ");
   scanf("%f", &(store.price));
   printf("Enter new product quantity: ");
   scanf("%d", &(store.quantity));
 }
void editData(Products *store, int storeCapacity){ //storeCapacity needed to invoke printData(), assume a working code for the function.
  int choice;
  printData(store, storeCapacity);
  printf("Enter slot number of product here: ");
  scanf("%d", &choice);
  overwrite(store[choice]);
}
Here's the catch, even though this code works, when I try to print the data, the data displays the values which should be overwritten. Have I forgotten to do something? I wish you could help me.
BTW, I code on an Android phone.
 
     
    