c中的动态struct数组使用calloc

时间:2014-10-16 21:22:53

标签: c

我正在尝试使用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;
}

0 个答案:

没有答案