0

我的程序有问题我不知道该怎么办:(

double spocitaj(FILE *fr,double **polsum, int *cena){

int r=0, i=0,k=0;
double n=0;
char c;


while((c=getc(fr))!=EOF){
    if(c=='\n') r++;
    if(r==4){
        *cena=k++;
        r=5;
    }
    if(r==6) r=0;       
}

*polsum=(double *)calloc(k,sizeof(double));
r=1;
rewind(fr);

while((c=getc(fr))!=EOF){

    if(c=='\n') r++;
    if(r==4) {
                    ungetc(c,fr);
            fscanf(fr,"%lf", &n);
            *polsum[i]=n;
            i++;
    }
    if(r==6) r=1;       
}

for(i=0;i<*cena;i++)
                    printf("%.2lf\n", *polsum[i]);
return 0;

}

你能帮我吗?0x012947F8这是一条消息: Projekt 1.exe 中未处理的异常0xC0000005::

访问违规写入位置0xCCCCCCCC

4

1 回答 1

5

*polsum[i]=n;应该是(*polsum)[i] = n;

*polsum[i]is *(polsum[i]),它被视为polsum一个数组,但您可能希望它是一个指针,一个指向存在double *.

将其更改为(*polsum)[i])“查找指向的double *位置polsumdouble *指向有很多double对象的地方。获取i一个。”</p>

于 2013-04-04T19:00:11.390 回答