我正在尝试在 Linux 中编写一个具有 sqrt 参数的 C 程序,代码如下:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
int main(char *argv[]){
float k;
printf("this is consumer\n");
k=(float)sqrt(atoi(argv[1]));
printf("%s\n",k);
return 0;
}
在“shell>”提示符下输入输入后,gcc 给出以下错误:
Segmentation fault (core dumped)
“分段错误”意味着您试图访问您无权访问的内存。
第一个问题是你的论点main
. The main
函数应该是int main(int argc, char *argv[])
,你应该检查一下argc
访问前至少为 2argv[1]
.
另外,由于您传递的是float
to printf
(顺便说一句,它被转换为double
当传递到printf
),你应该使用%f
格式说明符。这%s
格式说明符用于字符串 ('\0'
- 终止字符数组)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)