小编jtc*_*cey的帖子

将三重指针传递给函数,然后分配一个二维数组

遇到分段错误并且不明白为什么,必须传入三重指针进行赋值,因此无法更改...

这是功能

    void alloc2d(double*** a, int m, int n) {
     int i, j;

     **a  = malloc(sizeof(double *) * m);
     a[0] = malloc(sizeof(double) * n * m);

     for(i = 0; i < m; i++)
      a[i] = (*a + n * i);
    }
Run Code Online (Sandbox Code Playgroud)

这是函数的调用...

double** m;
alloc2d(&m, 5, 10);

double count = 0.0;

for (int i = 0; i < 5; i++)
    for (int j = 0; j < 10; j++)
        m[i][j] = ++count;

for (int i = 0; i <  5; …
Run Code Online (Sandbox Code Playgroud)

c arrays malloc pointers

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

标签 统计

arrays ×1

c ×1

malloc ×1

pointers ×1