访问冲突读取位置0xCCCCCCCC

Tom*_*man 0 c++ pointers access-violation

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

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;
Run Code Online (Sandbox Code Playgroud)

}

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

访问违规写入位置0xCCCCCCCC.

Eri*_*hil 5

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

*polsum[i]*(polsum[i]),它被视为polsum一个数组,但你可能打算将它作为一个指针,指向一个指针的指针double *.

将其更改为(*polsum)[i])"查看double *那是polsum点的位置.这double *指向一个有很多double物体的地方.获得i一个物体."