Хорошо, так что у меня есть следующий код:Двойной указатель на символ []
char** args = (char**)malloc(10*sizeof(char*));
memset(args, 0, sizeof(char*)*10);
char* curToken = strtok(string, ";");
for (int z = 0; curToken != NULL; z++) {
args[z] = strdup(curToken);
curToken = strtok(NULL, ";")
}
Я хочу, чтобы каждый arg[z]
отлиты в массив символов - символьную строку [100] - и затем обрабатывается в алгоритмах У меня есть следующее. Каждые arg[z]
необходимо в любой момент добавить в переменную строку. Я смущен указателями, но я постепенно улучшаюсь.
EDIT:
char string[100] = "ls ; date ; ls";
arg[0]
будет Ls, arg[1]
будет дата и arg[2]
будет Ls после кода выше.
Я хочу, чтобы каждый аргумент возвращался в строку символов [100] и обрабатывал его с помощью алгоритмов.
(в сторону) 'memset' не надежен с указателями; нет никакой гарантии, что нулевой указатель - все нули. (На общем оборудовании это, но цикл над 'args', чтобы установить каждый элемент в' NULL', более переносим и более явным.) –
Что делать, если есть больше, чем '10' токенов? 'args' достаточно хорош для' 10'. Приведения к 'malloc' не требуются. Также, каков ваш реальный вопрос? – dirkgently
Не совсем уверен, в чем вопрос, код выглядит отлично, за исключением того, что нет контроля над индексированием 'args'. – hmjd