То есть нуль-терминированные строки легко передавать, потому что одна строка заканчивается тогда, когда встречается ноль. А ты свои как будешь передавать. Сначала ты будешь должен сообщить, чему равна длина размера, а на той стороне надо будет это помнить.
Ну да, я понял, что ты пропёрся из-за своего тупого паскалевского мышления. Не в том смысле, что ты тупой, а в том, что Паскаль притупляет мышление и у паскалистов всё сводится к одному способу всегда, потому что язык большего не позволяет. В C же гибкость - обычное дело. Ты можешь и хранить длину, и не хранить длину.
В C делаешь структуру (указатель, длина), если нужно исходную строку сохранить. Если же это нафиг не надо, то просто нарезаешь её без всяких структур и заморочек с ними. А сдвиги, ну это ты сам придумал себе и героически победил у себя в голове.
Позволяет, конечно, но нахрен нужны эти размеры в памяти? При нарезке на подстроки нужно просто расставить маркеры, а длина всего массива известна заранее. Потом эти подстроки ещё можно нарезать, никаких длин не надо знать.
Там же маркер в конце, забыл? Дурилка ты картонная.
Что ты хочешь сказать, что я не могу для строки правильно выделить память до сохранения?
Епать, а strtok() что делает? Значит, ты просто не знаешь, как работает strtok(), раз такую ахинею пронёс.
Строка меняется, цель - получить подстроку
Какие вещи? Определение длины строки?
Да, походу, так и есть, ты предлагаешь индексировать на пустом месте. То есть жрать память попусту.
Речь про хранение идёт. Ты предлагаешь хранить длину рядом с каждой строкой, потому что другого варианта нет.
То есть к индексами добавляется и длина эта.
Или ты ещё пуще пошёл и длину сохранил в индекс, чтобы ещё веселее было.
То есть, по-твоему, кто сделал такие строки, - это просто дебилы. Один ты умник.
Да, оно подразумевает линейный перебор, и все это знают и всегда знали.