c - c中的分段错误核心转储错误
问题描述
每次我运行这个c代码时,我都会遇到一个分段错误(核心转储)......所以数组被打印出来,一切都在打印结束时给我这个分段错误......我试着在if之后休息一下,错误代码没有出现,但它现在只读取一行而不读取多行
int main(int argc, char* arg[]){
if (argc != 2){
puts("Error: Usage is caesarcipher <offset>");
exit(1);
}
int i = 0;
int input;
char array[100];
while ((input = getchar())!= '\0'){
if (input == '\n'){
array[i] = '\0';
printf("%s\n", array);
i = 0;
}else{
array[i] = input;
i += 1;}}
return 0;
}
}
解决方案
您应该检查文档getchar()
,尤其是指示错误的返回值。
推荐阅读
- nginx - Nginx Ingress 和 VirtualServer 在一个集群中
- python - 如何在没有 unicodeDecode 错误的情况下将图像发送到 Django-rest-framework
- c++ - 将 strlen(s) 值分配给整数会改变输出,为什么?
- angular - 在整个模型中传播用户输入的计算的最佳方式是什么?
- javascript - 将 jpg 上传到 Firebase 存储不会完全上传文件
- bash - 如何在mac中将top cmd输出复制到剪贴板?
- docker - 停止和删除后 Docker 容器仍在运行
- python - 如何在 Python 中没有任何循环(例如:for、while 等)递归 JSON 文件
- terraform - 不支持的参数。此处不应使用名为“subnet_id”的参数
- react-native - 如何在 react-native 中的 Tab Bottom 图标中检测多点触摸