Разобрать пример обращения к элементу матрицы - C (СИ)
Формулировка задачи:
Помогите пожалуйста решить такую задачу на C:
Необходимо набить двумерный массив строк типа
массив[строка][столбец] = "значение".
Я пробовал так:
но не сработало
при присвоении значения элементу массива[строка][столбец+1], перезаписывается и массива[строка][столбец]
Как надо?
Спасибо
char * names_array[<номер дома>][<номер квартиры>] = <Имя жильца>;
Решение задачи: «Разобрать пример обращения к элементу матрицы»
textual
Листинг программы
//char** arrsym = (char**) malloc(4); char * arrsym[20][20] = ""; //сюда нужен маллок, такой( (char**)malloc(400) )? for(int i = 0; i < 4; i++) { for (int k = 0; k < 10 ; k++) { arrsym[i][k] = (char*) malloc(256); arrsym[i][k] = "vasya"; } } for(int i = 0; i < 4; i++) { for (int k = 0; k < 10 ; k++) { printf("%s\n" , arrsym[i][k]) ; } }
Объяснение кода листинга программы
- В начале кода выполняется запрос на выделение памяти под массив указателей на строки с помощью
malloc(4)
. Однако, данная операция не является безопасной и может привести к ошибке сегментации при попытке доступа к выделенной памяти. - Затем создается двумерный массив
arrsym
размером 20x20, который в цикле заполняется строками, выделенными с помощьюmalloc(256)
. - Строки в цикле присваиваются значение
vasya
. - После заполнения массива, в цикле по нему выводится каждая строка с помощью функции
printf
. - В конце кода необходимо освободить выделенную память с помощью
free()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д