Я создаю динамический двумерный массив символов в C:
Примечание: rows
и columns
являются пользовательским вводом integers
char** items;
items = (char**)malloc(rows * sizeof(char*));
int i;
for(i = 0; i < rows; i++)
{
items[i] = (char*)malloc(columns * sizeof(char));
}
int j;
for(i = 0; i < rows; i++)
{
for(j = 0; j < columns; j++)
{
items[i][j] = 'O';
}
}
Позже в моем коде я пытаюсь перезаписать определенное место в массиве:
items[arbitraryRow][arbitraryColumn] = 'S';
Но результат в том, что символы в этой строке / столбце теперь 'SO'
Что я делаю не так?
Обновление :
Вот как я печатаю массив:
int i;
for(i = 0; i < rows; i++)
{
printf("[");
int j;
for(j = 0; j < columns; j++)
{
printf("'%s'", &items[i][j]);
if(j != columns - 1)
printf(", ");
}
printf("]");
printf("\n");
}