C: создание массива строк из исходной строки с разделителями

Что может быть эффективным способом преобразования строки с разделителями в массив строк в C (не C ++)? Например, я мог бы иметь:

char *input = "valgrind --leak-check=yes --track-origins=yes ./a.out"

Исходная строка всегда будет иметь только один пробел в качестве разделителя. И я хотел бы получить массив malloc-строкchar *myarray[] такой что:

myarray[0]=="valgrind"
myarray[1]=="--leak-check=yes"
...

редактировать Я должен предположить, что в произвольном количестве токеновinputString поэтому я не могу просто ограничить его до 10 или около того.

Я попытался грязное решение сstrtok и связанный список, который я реализовал, но valgrind жаловался так сильно, что я сдался.

(Если вам интересно, это для основной оболочки Unix, которую я пытаюсь написать.)

Ответы на вопрос(5)

Ваш ответ на вопрос