C 动态分配浮动矩阵?
有没有办法在C中C 动态分配浮动矩阵?,c,dynamic-memory-allocation,C,Dynamic Memory Allocation,有没有办法在C中malloc()2D矩阵?我已经成功地尝试了malloc()ing 1D字段,但是在矩阵中我得到了错误 float*mat2d=malloc(行*cols*sizeof(浮点 )); 要访问矩阵中的值,请使用此寻址方案: 浮点值=mat2d[x+y*cols] float*mat2d=malloc(行*cols*sizeof(浮点 )); 要访问矩阵中的值,请使用此寻址方案: 浮点值=mat2d[x+y*cols] 如果在编译时数组的大小未知,则必须使用循环为每行分配内存 下面是
malloc()
2D矩阵?我已经成功地尝试了malloc()
ing 1D字段,但是在矩阵中我得到了错误
float*mat2d=malloc(行*cols*sizeof(浮点
));
要访问矩阵中的值,请使用此寻址方案:
浮点值=mat2d[x+y*cols]
float*mat2d=malloc(行*cols*sizeof(浮点
));
要访问矩阵中的值,请使用此寻址方案:
浮点值=mat2d[x+y*cols]
如果在编译时数组的大小未知,则必须使用循环为每行分配内存 下面是我找到的一些示例代码:
double** allocate2D(int nrows, int ncols) {
int i;
double **dat2;
/* allocate array of pointers */
dat2 = malloc( nrows*sizeof(double*));
if(dat2==NULL) {
printf("\nError allocating memory\n");
exit(1);
}
/* allocate each row */
for(i = 0; i < nrows; i++) {
dat2[i] = malloc( ncols*sizeof(double));
}
if(dat2[i-1]==NULL) {
printf("\nError allocating memory\n");
exit(1);
}
return dat2;
}
double**allocate2D(整数nrows,整数ncols){
int i;
双**dat2;
/*分配指针数组*/
dat2=malloc(nrows*sizeof(double*);
如果(dat2==NULL){
printf(“\n分配内存时出错\n”);
出口(1);
}
/*分配每行*/
对于(i=0;i
从
请确保将数据类型从double更改为所需的任何类型。如果在编译时不知道数组的大小,则必须使用循环为每行分配内存 下面是我找到的一些示例代码:
double** allocate2D(int nrows, int ncols) {
int i;
double **dat2;
/* allocate array of pointers */
dat2 = malloc( nrows*sizeof(double*));
if(dat2==NULL) {
printf("\nError allocating memory\n");
exit(1);
}
/* allocate each row */
for(i = 0; i < nrows; i++) {
dat2[i] = malloc( ncols*sizeof(double));
}
if(dat2[i-1]==NULL) {
printf("\nError allocating memory\n");
exit(1);
}
return dat2;
}
double**allocate2D(整数nrows,整数ncols){
int i;
双**dat2;
/*分配指针数组*/
dat2=malloc(nrows*sizeof(double*);
如果(dat2==NULL){
printf(“\n分配内存时出错\n”);
出口(1);
}
/*分配每行*/
对于(i=0;i
从
请确保将数据类型从double更改为您需要的任何类型。谢谢,我假设x和y是坐标,cols引用列。@Hmyzak欢迎您。是的,我的意图是指出x,y是这个2d矩阵中的坐标。谢谢,我假设x和y是坐标,cols指向列。@Hmyzak,不客气。是的,我的意图是指出x,y是这个2d矩阵中的坐标。