Я пытаюсь создать массив строк, которые представляют каталоги, хранящиеся в переменной PATH.Я пишу этот код на C, но у меня возникают проблемы с работой частей выделения памяти.
char* shell_path = getenv ("PATH");
char* tok = strtok (shell_path, SHELL_PATH_SEPARATOR);
int number_of_tokens = 0, i = 0;
while (tok != NULL)
{
number_of_tokens++;
}
Shell_Path_Directories = malloc (/* This is where I need some help */);
shell_path = getenv ("PATH");
tok = strtok (shell_path, SHELL_PATH_SEPARATOR);
while (tok != NULL)
{
Shell_Path_Directories[i++] = tok;
tok = strtok (NULL, SHELL_PATH_SEPARATOR);
}
Проблема в том, что я не могу понять, как я могу точно знать,сколько памяти выделяется.
Я знаю, что дважды разбиваю строки на строки, и, наверное, глупо делать это, но я открыт для улучшений, если кто-то может найти лучший способсделай это.