Там больше различий между C и C ++, чем это обычно допускают.
По вашей ошибке причина проста: вы пытаетесь назначить указатель (char *) на sz, который является int.
Этот вид назначения генерирует предупреждение о несовместимом типе.
Второе, что вы не можете сделать (по крайней мере, насколько я знаю) частично динамическим массивом, как вы это делаете. В вашем случае вы должны использовать хотя бы malloc, а тип элемента должен быть char **. Однако есть хитрость в использовании только одного malloc для создания 2D-массива.
Для realloc меня ничто не поразило ... В чем ошибка компиляции?
Однако ваш код не похож на код C: /
Возможно, вам придется перестроить его с нуля, потому что вы здесь путаете между списками и двумерными массивами ...
Я могу написать несколько примеров кодов, если вы хотите, но вы, вероятно, должны найти учебник по основам Си в Google.
Хорошо, Люк:)