Можно ли разово присвоить символы к char
Например у меня есть код
#include <iostream>
#include <windows.h>
#include <shlobj.h>
bool GetPath(char* folder)
{
if (SHGetFolderPathA(0, CSIDL_PROFILE, 0, 0, folder) == S_OK)
{
return 1;
}
return 0;
}
bool fileExist(const char* path)
{
if (GetFileAttributesA(path) != INVALID_FILE_ATTRIBUTES)
{
return 1;
}
return 0;
}
int main()
{
char* path;
path = (char*)malloc(MAX_PATH);
GetPath(path);
if (fileExist(lstrcatA(path, "\\AppData")))
{
std::cout << path << std::endl;
}
std::cout << path << std::endl;
free(path);
return 1;
}
Могу ли я как то разово в условии в main присвоить переменной path определенную строку? Или для этого мне нужно обьявлять новую переменную? Если я использую lstrcatA то переменная меняется на всю программу, а мне нужно лишь присвоить в рамках условия
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
вот это выражение
lstrcatA(path, "\\AppData")
модифицирует переменную path и возвращает указатель на нее. И я так понимаю, это и есть проблемой.
Оставим за кадром то, что Вы ставите метку с++, используете cout, но при этом не используете std::string.
char path[MAX_PATH+1];
char apppath[MAX_PATH+1];
GetPath(path);
lstrcatA(apppath, path);
lstrcatA(apppath, "\\AppData")
if (fileExist(apppath))
{
// будем последовательны
puts(apppath);
}
puts(path);