Вы никак не можете определить длину массива, единственный способ, которым вы могли бы сделать это, это сделать это динамически.У вас есть массив строк (char**
), поэтому у вас есть указатель на первый символ первого элемента массива.Мы все знаем, что в C все строки должны редактироваться с '\ 0', так что вы можете "отсканировать" строки массива, взяв этот указатель и сохранив его, затем увеличивая его, пока не получите '\ 0'.Следующий указатель является первым символом следующей строки и т. Д.
Но в этом есть огромный недостаток: память не так линейна, как кажется.Я хочу сказать, что ваша первая строка может быть полностью выделена, например, по адресу 0x0010101A, а следующая - по адресу 0xF0FF0001, поэтому либо у вас огромная строка @ 0x0010101A, либо между ними куча данных, и вы не знаете,если они являются частью строки или нет.
И именно поэтому вам необходимо вести счетчик количества строк, которые у вас есть.:)
PS: и поскольку это число всегда больше нуля, вы должны использовать unsigned int
для его ввода.