我无法使用 printf 检索字符串。而不是收到错误:段错误
int main(){
char * a[5];
int i;
printf("\n enter value ");
for (i=0;i<5;i++){
printf("%d Name :\n",i);
scanf("%s",&a[i]);
}
printf("%s",a[2]);
printf("%s",a[3]);
}
~
char * a[5];
是 5 字符指针数组
,这意味着您可以存储任意长度的 5 字符缓冲区。
问题出在声明中
scanf("%s",&a[i]);
将其替换为 scanf("%s",a[i]);
案例 1:-
int main(){
char *a[5] = {"stackoverflow","meta","ask ubuntu","super","unix"};
/* here a[row] can have any number of char */
for (int i = 0 ;i < 5;i++) {
printf("%s\n",a[i]);
}
return 0;
}
案例 2:-
int main(){
char *a[5];
for (int i=0;i<5;i++){
printf("%d Name :\n",i);
a[i] = malloc(MAX);/* define MAX how many char you want to store into that */
scanf("%s",a[i]); /* & not required as a[i] itself address */
}
for (int i = 0 ;i < 5;i++) {
printf("%s\n",a[i]);
}
/* don't forget to free once job is done */
for (int i = 0 ;i < 5;i++) {
free(a[i]);
}
return 0;
}