C,变量f1周围的堆栈已损坏

时间:2012-11-17 00:49:24

标签: c arrays pointers stack

我有这个功能

int printofarray(int *j,double *n)
{
int x,k;
k=*j;
if(n==NULL) {
printf("array was not created\n");
return 1;}

for(x=0;x<k;x++){
printf("%.2lf\n",*(n+x));}

return 0;
}

当我使用它时输出就像这样

34.77
6114.05
410.70

但我想用这种方式写它们

  34.77
6114.05
 410.70

想法如何?

2 个答案:

答案 0 :(得分:2)

随便为f1尝试%f而不是%lf。编辑:%lf是双倍。

答案 1 :(得分:1)

%lf指定阅读double,但您尝试将结果存储在float中,这是一半大小。浮点数的说明符只是%f - 或使用double;浮动在现代通用计算机上相当无用。