Я хочу создать программу с C++ и этот логин на моем сервере FTP и происходит, если в папке сервера есть новый файл.
Мой друг уже создал эту программу, она функционирует (работает) и передает ее мне.
Внутри программы мы используем библиотеку и инструменты CURL для входа на FTP.
На моем компьютере эта программа не работает с использованием DEV C++. Затем я создаю новый проект, переписываю весь код старой программы, загружаю библиотеку CURL и компилирую.
Программа получает проблемы с выполнением.
Проанализируйте программу, есть ли аномалия с MALLOC.
Это код, где есть аномалия:
char* userpwd = (char*)malloc(strlen(USERNAME)+1+strlen(PASSWORD));
printf("\n malloc %s",userpwd);
strcat(userpwd, (const char*)USERNAME);
strcat(userpwd, ":");
strcat(userpwd, (const char*)PASSWORD);
printf("\n not %s",userpwd);
Объясните, как работает эта функция: во-первых, мне нужно построить переменную, содержащую «USERNAME:PASSWORD». Проблема после char* userpwd = (char*)malloc(strlen(USERNAME)+1+strlen(PASSWORD));
Потому что, когда я печатаю значение userpwd, у меня есть - или другие символы перед строкой. Тогда обычно логин неверен или отклонен.
Это изображение:
Для работы без проблем я могу изменить код:
char userpwd[50];
userpwd="USERNAME";
strcat(userpwd, ":");
strcat(userpwd, "PASSWORD");
printf("\n not %s",userpwd);
И эта функция.
Но программа прочитала файл configuration.txt
для получения URL, ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ. Тогда удобно пользоваться malloc
но у меня на компе и на сестре аномалия символов.
Как я могу предотвратить эти аномалии? Почему у меня эти странные символы? Спасибо за любую возможную помощь.
P.S: я удаляю строку USERNAME и PASSWORD с белым цветом для защиты моей учетной записи.
memset
послеmalloc
- person Sakthi Kumar   schedule 28.04.2014std::string
для своих строк, и у вас будет гораздо меньше проблем. - person Mike Seymour   schedule 28.04.2014malloc
и C-строками сделает вашу программу легче и быстрее. Это просто неправда. Все, что он делает, — это замедляет ваше развитие. - person Lightness Races in Orbit   schedule 28.04.2014