typedef struct char windowText; char selectedText; char selectedPath; char selectedFiles; unsigned int selectedCnt; Selected; Selected data = 0;C++如何初始化使用完后如何释放内存
在C++中,可以使用构造函数来初始化结构体的成员变量,并使用析构函数来释放内存。以下是对Selected结构体的初始化和内存释放的示例代码:
#include <iostream>
#include <cstring>
typedef struct
{
char* windowText;
char* selectedText;
char* selectedPath;
char** selectedFiles;
unsigned int selectedCnt;
} Selected;
class SelectedData {
public:
SelectedData() {
data.windowText = new char[1];
data.selectedText = new char[1];
data.selectedPath = new char[1];
data.selectedFiles = nullptr;
data.selectedCnt = 0;
}
~SelectedData() {
delete[] data.windowText;
delete[] data.selectedText;
delete[] data.selectedPath;
if (data.selectedFiles != nullptr) {
for (unsigned int i = 0; i < data.selectedCnt; i++) {
delete[] data.selectedFiles[i];
}
delete[] data.selectedFiles;
}
}
Selected getData() {
return data;
}
private:
Selected data;
};
int main() {
SelectedData selectedData;
Selected data = selectedData.getData();
// 使用data结构体
return 0;
}
在上述代码中,我们定义了一个SelectedData类,该类在构造函数中为Selected结构体的成员变量分配内存,并在析构函数中释放内存。通过调用SelectedData类的getData函数,我们可以获取到已经初始化好的Selected结构体对象data。你可以在getData函数的返回值中添加拷贝构造函数,以便在使用完data对象后,确保其内存被正确释放
原文地址: http://www.cveoy.top/t/topic/h1Be 著作权归作者所有。请勿转载和采集!