ここにスニペットがあります:
void addproductInterface(Tsklep **head){
char* name = (char*)malloc(sizeof(char)*100);
double price;
do{
printf("Name: ");
scanf("%s[^\n]", name);
fflush(stdin);
printf("\nPrice: ");
scanf("%lf", &price);
fflush(stdin);
addProduct(&(*head), name, price);
} while(prompt("Do you want to add another one?"));
動作しますが、別の製品を追加すると、以前の製品 (および以前の製品) がこの名前に変更されます。毎回同じポインターを渡し、それが指す配列を (別の製品を追加するときに) 変更するだけのようです。私はそれを正しく理解していますか?それを修正する方法はありますか?