Вы можете использовать clock_t для отслеживания времени блока кода.
и вот ваш код после некоторых обновлений.
#include<stdio.h>
#include<time.h>
int main()
{
int i = 0, j = 0;
int m, n;
scanf("%d %d", &m, &n);
clock_t start, end;
double time_used;
start = clock();
int **M = malloc(sizeof(int*)*m);
for (i = 0; i < m; ++i) {
*M = malloc(sizeof(int)*n);
for (int j = 0; j < n; ++j) {
M[j] = j;
}
}
end = clock();
time_used = ((double)(end - start)) / CLOCKS_PER_SEC;
printf("Time used for fisrst code is : %f \n ", time_used);
start = clock();
M = malloc(m*n * sizeof(int));
for (i = 0; i < m*n; ++i) M[i] = i;
end = clock();
time_used = ((double)(end - start)) / CLOCKS_PER_SEC;
printf("Time used for second code is : %f \n ", time_used);
return 0;
}
и этот код выводится при вводе матрицы 10000 * 10000
Время, использованное для первого кода: 0,001000
Время, использованное для первого кода: 0,686000
Это означает, что второй код занимает больше времени, чем первый.