Разобрать пример обращения к элементу матрицы - 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()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д