我无法使用malloc()将多维变量数组传递给C中的函数

用户名

这段代码应该在main中创建一个数组,然后打印它,但是每次我运行它时,我只会得到全0的数组

#include <stdio.h>
#include <stdlib.h>

void print(float **A, int w, int h){
  int i, j;

  A = (float*) malloc(w*h*sizeof(float));

  for (i=0;i<h;i++){
    A[i] = (float*) malloc(w*sizeof(float));
  }

  for (i=0; i<h; i++){
    for(j=0; j<w; j++){
      printf("%f ", A[i][j]);
    }

    printf("\n");
  }
}

int main(void) {

    int i;
    int x_dimension=3;
    int y_dimension=2;
    float arr [3][2]={};
    arr[0][0]=16.2;

    print(arr,x_dimension,y_dimension);

    return 0;
}
耶洛诺拉

您正在print函数中重新分配它,这应该可以工作:

#include <stdio.h>
#include <stdlib.h>

void print(float * A,int h, int w){
  int i,j;
  for (i=0;i<h;i++){
    for(j=0;j<w;j++){
      printf("%f ",A[i * w + j]);
    }
    printf("\n");
  }
}

int main(void) {
    int i;
    const int x_dimension=3;
    const int y_dimension=2;
    float arr[x_dimension][y_dimension];
    arr[0][0]=16.2;
    print(arr,x_dimension,y_dimension);
    return 0;
}

请注意,我还反转函数中wh参数print

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法将多维数组传递给* .pyx中的C函数

无法将数组从多维数组传递给函数

无法将多维数组传递给foreach函数-PHP

我无法将数组作为参数传递给 C# 中的函数

将多维数组传递给python中的函数

如何将多维数组传递给 Julia 中的函数?

将多维数组传递给** ptr函数

将多维数组传递给 C 中的函数时出现的问题

将多维数组传递给C中的函数时的分段错误

将多维数组(最初没有定义其维)传递给C ++中的函数

将多维数组向量中的单个项目的指针传递给函数c ++

将多维字符数组传递给 C 中的 void 函数时出错

无法将多维数组传递给结构

如何使用CFFI将多维Numpy数组传递给C函数?

在将数组传递给函数时,我无法让冒泡排序在函数中工作

我无法将变量从函数传递给Shell脚本中的主代码

将数组中的值传递给多维数组中的php变量

将数组和变量传递给Perl中的函数

将多维数组的数组的指针传递给函数,并指定范围

C将未知大小的数组传递给单个变量中的函数

无法将结构数组传递给C函数

无法将我的一维数组传递给C中的函数

我无法将链接中的参数传递给函数

RCPP:我无法将参数传递给C ++函数

无法将$ conn变量传递给函数

C-无法将数组引用传递给函数中的指针参数

无法将2D数组传递给C ++中的辅助函数

使用PowerShell无法将脚本块中的变量传递给我的其余代码

将多维数组传递给函数错误