Здравствуйте! Задание вывести переменные окружения, имена которых короче заданного числа. Для этого я разбиваю каждую переменную на [имя, значение] по символу "=" с помощью 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);
		}
	}
}
На данный момент этот код выводит только имена переменных окружения и меняет вообще все переменные окружения.