我正在尝试使用struct article
创建calloc
的动态数组我已将其指定为以2的数组返回。当我运行代码时,我可以输入我想要的名称和当我使用printf
时,它似乎比2更多元素。如果我输入5个名字,它将打印出5个名字。什么时候它应该只是数组中2个名字的空间?
struct article{
char name[20];
float number;
char unit[20];
};
int main(void){
struct article *cart;
int i = 0;
char val[2];
cart = calloc(2, sizeof(struct article));
int size = 0;
do{
printf("Name: ");
scanf("%s", cart[i].name);
printf("press x to exit and print names ");
scanf("%s", val);
i++;
}while(val[0] == 'x');
size = i;
for(i = 0; i < size; i++){
printf("%s\n", cart[i].name);
}
return 0;
}