访问冲突读取位置0xCCCCCCCC

时间:2013-04-04 18:54:59

标签: 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;

}

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

  

访问违规写入位置0xCCCCCCCC

1 个答案:

答案 0 :(得分:5)

*polsum[i]=n;应为(*polsum)[i] = n;

*polsum[i]*(polsum[i]),它将polsum视为一个数组,但您可能希望它是一个单指针,指向一个double *的指针。

将此更改为(*polsum)[i])说“查找double *指向的polsumdouble *指向有double位的地方i获取{{1}} th 之一。“