为c++文件体中的引用变量分配内存和设置值时出现问题(不在函数中)



我是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。

我没有initmain函数,因为我正在尝试编写一个可以与其他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();

相关内容

  • 没有找到相关文章

最新更新