typedef struct char windowText; char selectedText; char selectedPath; char selectedFiles; unsigned int selectedCnt; Selected; Selected data = 0;C++如何初始化最简洁使用完后如何释放内存
在C++中,可以使用构造函数来初始化结构体中的成员变量,并使用析构函数来释放内存。在这种情况下,可以将结构体定义为一个类,并在类中实现构造函数和析构函数。
以下是使用类来初始化和释放内存的示例代码:
class Selected {
public:
Selected() : windowText(nullptr), selectedText(nullptr), selectedPath(nullptr), selectedFiles(nullptr), selectedCnt(0) {}
~Selected() {
delete[] windowText;
delete[] selectedText;
delete[] selectedPath;
// 释放 selectedFiles 数组中的每个元素
for (unsigned int i = 0; i < selectedCnt; i++) {
delete[] selectedFiles[i];
}
delete[] selectedFiles;
}
char* windowText;
char* selectedText;
char* selectedPath;
char** selectedFiles;
unsigned int selectedCnt;
};
int main() {
Selected data;
// 使用 data 进行操作
// 在 main 函数结束时,data 的析构函数会自动被调用,释放内存
return 0;
}
在上面的代码中,构造函数用于初始化结构体中的成员变量,析构函数在对象销毁时自动调用,用于释放内存。注意,如果成员变量的类型是指针,则需要在析构函数中使用 delete[] 来释放内存。
另外,如果需要动态地分配内存给 selectedFiles 数组,可以使用 new 运算符,在构造函数中为 selectedFiles 分配内存,并在析构函数中使用 delete[] 来释放内存
原文地址: http://www.cveoy.top/t/topic/h1Bn 著作权归作者所有。请勿转载和采集!