嘿伙计们我正在尝试完成我的代码,但我没有获取值,而是获得了值的地址。那是为什么?
算法是否构建正确?我需要安排用户收到的数组排序。 m
等于0
的其余部分的所有数字将出现在数组的开头,所有除以m
的除法的数字等于{{1将跟随,两个数字的其余部分将在稍后出现,依此类推。将1
上的分布等于m
,将其余数字用完。
这是我的输出:
这是我的代码:
m-1
答案 0 :(得分:5)
第一:你有内存泄漏!并且不需要arr[i]=(int)malloc(length*sizeof(int));
。您只需要一个1-D数组(arr
的声明是正确的)。删除以下代码:
for(i=0; i<length; i++)
arr[i]=(int)malloc(length*sizeof(int)); // Allocate memory for each row
注意:请勿按malloc()
和calloc()
函数强制转换返回的地址。读:Do I cast the result of malloc()
and calloc()
scanf中第二个缺少&
:
scanf("%d", arr[i]);
// ^ & missing
应该是:
scanf("%d", &arr[i]);