Нужно ли освобождать файловую переменную внутри блока, поскольку она находится в блоке?
Указатель (const
) внутри блока с областью действия по-прежнему остается просто указателем.
Никаких специальных действий не предпринимается (например, для автоматического освобождения памяти, на которую он указывает), когда область видимости остается.
Таким образом, мы не можем на самом деле сказать, если не знаем, как этот указатель был выделен
const char* file = get_filename();
Это может быть что-то вроде
const char* get_filename() {
static const char* hardcoded_stuff = "TheFileName.txt";
return hardcoded_stuff;
}
or
const char* get_filename() {
const char* filename = new char[MAXFILENAME];
// ... determine and initialize filename ...
return filename;
}
Первая версия не требует освобождения памяти со стороны клиента, а вторая требует.
Я использую библиотечную функцию...
Указывает, что вы используете код, который не находится под вашим контролем. Таким образом, вы должны посетить документацию этой библиотеки или спросить авторов.
Я пытался найти любую документацию о том, как выделяется переменная const char *, но ничего.
Вы проверили их пример в документации?
Я не нашел никакого кода для освобождения указателя, полученного с помощью al_get_native_file_dialog_path()
.
person
πάντα ῥεῖ
schedule
24.05.2016
get_filename
? - person NathanOliver   schedule 24.05.2016