#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char* string;
int main(void)
{
char *names[6];
int num_entries = 0,i=0,size=0;
string name = (string) malloc(sizeof(char) * 16);
printf("\nHow many names do you want to enter ? \n");
scanf("%d",&num_entries);
for(i=0 ; i < num_entries ; i++)
{
printf("\nEnter a name : ");
gets(name);
size = strlen(name);
names[i] = (string) malloc(sizeof(char)*size + 1);
strcpy(names[i],name);
}
for(i=0 ; i < num_entries ; i++)
puts(names[i]);
}
在这个程序中,第一次不会在循环中读取字符串,但是对于所有后续调用都可以正常工作,程序只需要接受 n 个字符串,存储并显示它们。但是它执行 n-1 次。解决方案?也,请随时指出使用指针、分配等方式的任何错误,感谢任何反馈。