在C中,我有以下创建2D数组的功能.
int** createMatrix(int xdim, int ydim){
int** mat = malloc(xdim*sizeof(int*));
int i;
for(i=0; i<xdim; i++){
mat[i] = malloc(ydim*sizeof(int));
}
return mat;
}
Run Code Online (Sandbox Code Playgroud)
在调用函数中(在这种情况下为int main()):
int **matA = createMatrix(10, 10);
free(matA);
Run Code Online (Sandbox Code Playgroud)
我似乎有一个释放内存的问题,我想知道这是否因为变量"mat"永远不会被释放.
是否足以免费(matA),就像我一样?或者是我无法解决的问题(垫子)?
在python中,我有一个列表,例如:
a = [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
列表将始终排序.我想为这些值分配权重,使得权重仅在值0和1之间.最大值将具有权重1,即在该示例中,5将具有权重1.
但是,1不会有权重0(0是特殊的,不包括在内).我希望所有其他权重都是最大数字的某个小数值.我不确定解决这个问题的最佳方法是什么.