Значение мусора анализатора LLVMC++

Программы на C++. Форум разработчиков
Anonymous
Значение мусора анализатора LLVM

Сообщение Anonymous »

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

Код: Выделить всё

template
class MyClass{
element_type* m_data = nullptr;
std::size_t rows, columns; // assume that they have been initialized

inline MyClass(){
this->m_data = new element_type[(this->rows)*(this->columns)]{};
this->m_data_end = this->m_data+(this->rows)*(this->columns);
}
};
Когда я выполняю анализ своего кода, XCode (и LLVM-Clang под капотом) сообщает мне, что this->m_data = new element_type[(this->rows)*(this ->columns)]{}; хранит мусорное значение (неинициализированные значения). Я не понимаю, что я делаю не так в этом примере. Буду очень признателен за любые разъяснения.
Для меня я делал то, что было рекомендовано в этом принятом ответе: https://stackoverflow.com/a/67967472/23051105.
По просьбам комментариев предоставлю более подробную информацию о реализации:

Код: Выделить всё

template
class Parent{
std::size_t rows, columns;

element_type* m_data = nullptr;
element_type* m_data_end = nullptr;

inline Parent(const std::size_t rows, const std::size_t columns) : rows(rows), columns(columns){}
};

template
class MyClass : public Parent {
inline void createInternStorage(){
if (this->m_data != nullptr || this->m_data_end != nullptr)
this->deleteInternStorage();

this->m_data = new element_type[(this->rows)*(this->columns)]{};
this->m_data_end = this->m_data+(this->rows)*(this->columns);
}

inline void deleteInternStorage(){
if (this->m_data != nullptr)
delete[] this->m_data;
this->m_data = nullptr;
this->m_data_end = nullptr;
}

inline MyClass(const std::size_t rows, const std::size_t columns) : Parent(rows, columns) {
this->createInternStorage();
}
};
Имейте в виду, что программа полностью работоспособна, она инициализирует нужный объем памяти, и мне кажется, что все в порядке. Меня просто смутило это сообщение анализатора.

Подробнее здесь: https://stackoverflow.com/questions/786 ... bage-value

Вернуться в «C++»