добавлено динамическое выделения памяти под ключ и временную переменную