Здравствуйте! Задание вывести переменные окружения, имена которых короче заданного числа. Для этого я разбиваю каждую переменную на [имя, значение] по символу "=" с помощью strtok. Однако strtok меняет само значение, добавляя в массив NULL. Как мне скопировать значение переменной в формате "имя=значение" в другую переменную, чтобы потом при работе с новой, старая не изменялась. Пробовал через memcpy и не получилось.
void ShortNames(char **arr, int num)
{
printf("Значения переменных, у которых имена меньше заданного: \n");
for (char **env = arr; *env != 0; env++)
{
char **result = malloc(sizeof(char*) * 1000);
int size = sizeof(env);
char* thisEnv = *env;
//char* thisEnv = malloc(sizeof(char*) * size);
//memcpy(thisEnv, *env, sizeof(char*) * size);
split(result, thisEnv, "=");
if (strlen(result[0]) <= num)
{
printf("%s \n", *env);
}
}
}
На данный момент этот код выводит только имена переменных окружения и меняет вообще все переменные окружения.