我是c和c++的新手。我想分配内存,并为c++文件体中的指针设置一个值,这样它只执行一次
这是我的代码:
myFile.h:
struct SelectedRows_t {
uint32_t rowsLen;
SelectData_t* rows[];
};
extern SelectedRows_t* selectedRows;
myFile.cpp
SelectedRows_t* selectedRows = (SelectedRows_t*)malloc(sizeof(selectedRows->rowsLen));
// some functions which use selectedRows variable
但是我找不到同时初始化变量的方法。我需要在程序开始时将rowsLen
设置为0。
我没有init
或main
函数,因为我正在尝试编写一个可以与其他c++代码一起在任何地方使用的库
我只需要在程序开始时将此0分配给此变量一次
我必须自己为这个变量分配内存,否则像selectedRows->rowsLen
这样的代码会使我的程序崩溃
我无法在函数中realloc
此变量,因为此结构中的rows
变量需要在重新分配内存之前释放
我不知道这是否重要,但我正在编写这个程序,以便在esp32板上运行。
提前谢谢。
我使用一个函数来完成我在其中的所有工作,并将指针返回到最终的SelectedRows_t
:,从而解决了这个问题
SelectedRows_t* createSelectedRows() {
SelectedRows_t* selectedRowsTemp = (SelectedRows_t*)malloc(sizeof(selectedRows->rowsLen));
selectedRowsTemp->rowsLen=0;
return selectedRowsTemp;
}
SelectedRows_t* selectedRows = createSelectedRows();