для разделения строки по словам и записи их в массив. На 8 строке выходит "нарушение прав доступа при записи". Почему T ~ T ?
зачем тебе лпстр?
char zalupa[]; char podzalupa[][]; int localc = 0; for(size_t i= 0;i<sizeof(zalupa);i++) { if(zalupa[i] == ' ') // новый элемент подзалупы }
а локал там зачем?
Ты используешь в качестве источника данных для своей функции строковый литерал, он хранится обычно в read only памяти и его нельзя менять. А strtok свой исходный буфер меняет, это написано в документации. Надо было читать... Ну и функция конечно та ещё по стилю и красоте, что стоили все эти муки, все динамические выделения памяти, если в итоге там не больше 10 слов в результате? Было бы лучше сделать массив указателей, ставить '\0' в исходном буфере вместо разделителей и запоминать указатели на слова, тем более, что strtok именно так и делает
Премного благодарен, сударь
Обсуждают сегодня