Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Си динамические двумерные массивы
Си динамические двумерные массивы
Ну очень мне помог разобраться вот этот небольшой но лаконичный топик с картинкой,
просто и не принужденно, плюс оригинальное решение которое я оставлю на когда нибудь потом.
http://foxford.ru/wiki/informatika/dina ... assivy-v-s
просто и не принужденно, плюс оригинальное решение которое я оставлю на когда нибудь потом.
http://foxford.ru/wiki/informatika/dina ... assivy-v-s
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Re: Си динамические двумерные массивы
Отнеситесь с определённой осторожностью к таким объяснениям...nezabudka писал(а):Ну очень мне помог разобраться вот этот небольшой но лаконичный топик с картинкой,
просто и не принужденно, плюс оригинальное решение которое я оставлю на когда нибудь потом.
http://foxford.ru/wiki/informatika/dina ... assivy-v-s
1). посмотрите контингент преподавателей этого ресурса ... a'la "Учитель информатики и математики с восьмилетним стажем." ... "Эксперт ОГЭ и ЕГЭ по информатике."
2). Показанное в их публикации:
Код: Выделить всё
int **A = (int **)malloc(N*sizeof(int *));
// ... и так далее
Код: Выделить всё
int A[ 10 ][ 10 ];
Единственная минимальная разница, что в первом случае массив выделяется в хипе, а во втором случае - в стеке. Но структура их абсолютно одинакова.
Но выделять память динамически вместо стека можно в C под любые агрегаты данных любой степени сложности.
Но выделяемые таким образом массивы нисколько не становятся динамическими, они столь же статические в своей структуре и границах.
И называть их так нельзя.
Можно было бы говорить о динамически размещаемых массивах ... что, как говорят в Одессе, "две большие разницы".
Re: Си динамические двумерные массивы
Ну эта картинка мне очень! помогла в понимании во первых передачи в функции (как вы и заметили) указателя на двумерный массив,
во второрых я действительно не могла понять как считать динамически изменяемое количество
строк(массива типа char[]) из файла-базы_данных. Вот теперь имею ясное представление как в куче создать динамический массив
указателей на (например) строки, отведя как я понимаю в стеке место всего под один указатель.
во второрых я действительно не могла понять как считать динамически изменяемое количество
строк(массива типа char[]) из файла-базы_данных. Вот теперь имею ясное представление как в куче создать динамический массив
указателей на (например) строки, отведя как я понимаю в стеке место всего под один указатель.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Re: Си динамические двумерные массивы
Но лучше это (массивы любой размерности с динамически меняющимися размерностями) делать в C++, используя шаблонные классы STL: Начала STL и контейнеры C++.nezabudka писал(а):во второрых я действительно не могла понять как считать динамически изменяемое количество
строк из файла-базы_данных. Вот теперь имею ясное представление как в куче создать динамический массив
указателей на (например) строки имея как я понимаю в стеке всего один указатель.
Причём, не нужно обращать внимания на слова "C++" - просто компиляция тем же GCC в режиме С++ (g++), рассматривая C++ только как препроцессор к C коду, каким его, собственно, и начинал делать Б.Страуструп.
Re: Си динамические двумерные массивы
Да, картинка уместная и структуру объясняет.nezabudka писал(а):Ну эта картинка мне очень! помогла в понимании во первых передачи в функции (как вы и заметили) указателя на двумерный массив,