У меня есть указатель, указывающий на 2D-массив из целых чисел с размерами [N] [M] с М четным. Я определяю это выделение памяти следующим образом:Сравнить содержимое 2D-указатели C
//alocate the memory of indxs pointer containing the indexs of each matrix element
int **indxs;
indxs = (int**) malloc(N*sizeof(int *));
for(i = 0; i<N; i++){
indxs[i] = (int *) malloc(M*sizeof(int));
}
После заполнения Я хочу сравнить для каждой строки (i_n), если первая половина элементов indxs[i_N][:M/2]
равна второй половины элементов indxs[i_N][M/2:]
. Это [:M/2]
- это обозначение Python, я не знаю, как это сделать в C, любое предложение ?. Я прочитал в другом посте, что для сравнения содержимого двух указателей вы должны разыменовать их первыми:
int *a = something;
int *b = something;
*a==*b
Но как это может быть сделано в моем случае?
Обычный предупреждать: [никогда не приводить результат 'malloc()'] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc). – Quentin