Отсортировать строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке
Не могу найти ошибку. Не заполняет дополнительный массив с кол-вом одинаковых элементов.
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <time.h>
#include <stdlib.h>
#include <malloc.h>
int main()
{
int i, j, n, m, l, min, min_l, kol, temp;
int* new_mas_kol;
setlocale(LC_ALL, "Rus");
printf("Введите количество строк в матрице\n");
scanf_s("%d", &n);
printf("Введите количество столбцов в матрице\n");
scanf_s("%d", &m);
printf("\n");
int **b;
b = (int**)calloc(n, sizeof(int*));
for (i = 0; i < n; i++) {
*(b + i) = (int*)calloc(m, sizeof(int*));
}
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++)
{
scanf_s("%d", &b[i][j]);
}
printf("\n");
}
printf("\n");
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
printf("%d ", b[i][j]);
}
printf("\n");
}
new_mas_kol = (int*)malloc(n * sizeof(int));
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
new_mas_kol[i] = 0;
for (int k = j + 1; k < m; k++) {
if (b[i][j] == b[i][k]) {
new_mas_kol[i]++;
}
}
}
}
printf("\n");
for (j = 0; j < m; j++) {
printf("%d ", new_mas_kol[j]);
}
printf("\n");
printf("\n");
for (i = 0; i < n; i++) {
int maxCount = new_mas_kol[i];
int index = i;
for (j = i + 1; j < n; j++)
if (new_mas_kol[j] > maxCount) {
maxCount = new_mas_kol[j];
index = j;
}
int temp = new_mas_kol[i];
new_mas_kol[i] = maxCount;
new_mas_kol[index] = temp;
for (int k = 0; k < n; k++) {
temp = b[i][k];
b[i][k] = b[index][k];
b[index][k] = temp;
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}