относительно
string[8][0] = "ooo";
и подобных утверждений:
код копирует точку в постоянную память
И помните, что постоянная память не может быть изменена по программе.
Предложите изменить код, чтобы строки (строки) фактически помещались в массив, аналогично.
char string[10][10];
...
strcpy( string[0], "ooo" );
относительно:
printf("%d %d\n", strlen(string[8][0]), strlen(string[9][0]));
функции: strlen()
возвращает size_t
, а не int
, поэтому спецификаторы преобразования выходного формата должны быть %zu
, а не %d
Если ваш компилятор не предупредил вас о проблемах в коде, то включите предупреждения, затем исправьте эти предупреждения.
Для gcc
при минимальном использовании: -Wall -Wextra -Wconversion -pedantic -std=gnu11
Обратите внимание, что другие компиляторы используют разные параметры для получения одинаковых результатов