Разобрать пример обращения к элементу матрицы - 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().