数组 - 按C中的模数排序

时间:2013-09-20 12:33:48

标签: c arrays sorting pointers

嘿伙计们我正在尝试完成我的代码,但我没有获取值,而是获得了值的地址。那是为什么?
算法是否构建正确?我需要安排用户收到的数组排序。 m等于0的其余部分的所有数字将出现在数组的开头,所有除以m的除法的数字等于{{1将跟随,两个数字的其余部分将在稍后出现,依此类推。将1上的分布等于m,将其余数字用完。

这是我的输出:

output of my code

这是我的代码:

m-1

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]);