Можно выделить пространство памяти 1DУстные линейное пространство памяти как 1D, 2D, ..., ND эффективен в C
int *x=(int *)malloc(100*sizeof(int));
, а затем переделку возвращаемого указателя на 2D массив, например
int **y=(int **)x;
и доступ к нему, как если бы это был 2D массив, например, y[1][2] = 12;
?
Моя цель - взять сегмент разделяемой памяти и вернуть 1D, 2D, ... ND-массив в зависимости от того, как пользователь хочет интерпретировать это линейное пространство с максимальной эффективностью (т. Е. Не объявлять новый N-мерный массив и копировать данные внутрь).
На второй ноте есть библиотека для C, которая обрабатывает N-мерные массивы, получая от них срезы и эффективно перенося их (например, преобразование строки-майора в col-major)?
спасибо, bliako
Я признаю, что мой вопрос был полностью хромым. вы можете сказать, что массив содержит не только мои данные, но и указатели на каждую строку. – bliako