小编ano*_*ous的帖子

在C中通过引用传递2D动态分配的双数组

我正在尝试将我的字符串转换为动态的双精度数组.我的字符串的每个空格代表一列,每个";" 代表一个新行.当此代码运行时,它仅适用于*F [0] [col]时.当它到达*F [1] [col]时,它给出了错误"CCode.exe中0x00e4483c处的未处理异常:0xC0000005:访问冲突读取位置0xcccccccc." 谁知道为什么?

void main(void) {  
    double **F = NULL;  
    F = malloc(row * sizeof (double *));  
    for (m=0; m < row;m++) {  
        F[m] = malloc(col * sizeof(double ));
    }  
    FParser(string, &F);
for (m=0;m<rowF;m++)
    free(F[m]);
free(F);
}

void FParser(char string[256], double ***F) {  
  while (dummyChar_ptr != NULL) {
    dummyChar_ptr = strtok(dummyChar_ptr," ");
    while ((dummyChar_ptr) != NULL) {
      *F[row][col] = atof(dummyChar_ptr);
      dummyChar_ptr = strtok(NULL," ");
      col++;
    }
    col=0;
    row++;
    strcpy(dummyChar,string);
    dummyChar_ptr = strtok(dummyChar,";");
    for (x=0;x<row;x++) 
      dummyChar_ptr = …
Run Code Online (Sandbox Code Playgroud)

c pass-by-reference multidimensional-array dynamic-memory-allocation

1
推荐指数
1
解决办法
984
查看次数