есть ли удобный способ создания матрицы без использования malloc? Этот вид работ:C 2 мерная матрица с переменными размерами строк
int *arr2d[3];
int arr0[] = { 0 };
int arr1[] = { 0, 1 };
int arr2[] = { 0, 1, 2 };
arr2d[0] = arr0;
arr2d[1] = arr1;
arr2d[2] = arr2;
printf(%d, arr2d[i][j]);
Это не позволяет вам перебрать значения легко, как вы не можете получить размер каждой подрешетки, как вы могли бы с помощью SizeOf для arr2d [3] [3].
sizeof arr2d[i]/sizeof arr2d[i][0]
Есть ли лучший способ сделать это?
Для справки, вот такой же вопрос для C++:
C++ 2 dimensional array with variable size rows
То, что я нахожу, беспокоит этот подход, так это то, как размеры являются буквальными числами, которые не являются производными от литерала массива. Это приглашение к ошибкам, забывая изменить размер при изменении литерала массива. Я постараюсь избежать этого, хотя он будет работать нормально. – cmaster
Обнаружилось, что нужно написать m [i] .a [j], есть ли способ избежать этого? – Forss
@Forss Используйте функцию. – 2501