【发布时间】:2021-03-18 23:10:09
【问题描述】:
我正在尝试从用户那里获取输入并将其存储为 char 数组。我有以下代码,其中函数数组将地址返回到字符数组。但是,我收到核心转储错误,这是怎么回事?
//reading and storing input from user as char array
int * array(int * r){
int ch;
int i;
r[10];
printf("enter your name: ");
for ( i = 0; i < 10; i++){
r[i] = getc(stdin);
printf("%c", r[i]);
}
return r;
}
//main
int main(void){
int *p;
p = array(p);
}
【问题讨论】:
-
您从未为
p分配任何内存,因此您取消了对未初始化指针的引用。 -
您应该使用教程来学习如何从 C 中的标准输入中读取字符串。您的代码没有遵循通常的做法...
-
您说的是“字符数组”,但您使用的是
int。 -
声明
r[10];没有任何作用。你还声明了一个你从不使用的变量ch。 -
如果您将
int *p;更改为int p[10];,您的代码将起作用
标签: arrays c segmentation-fault