【发布时间】:2014-03-05 00:48:02
【问题描述】:
这段代码应该在 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()中分配内存?毕竟,您只是在打印它的内容。 -
float[M][N]和float**不相同。
标签: c pointers dynamic multidimensional-array malloc