在 C++ 文件体中分配内存并将值设置为引用变量的问题(不在函数中)
Problem in allocating memory and set value to a refrence variable in c++ file body (Not in function)
我是 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 板上。
提前致谢。
我通过使用一个函数来完成我在其中的所有工作并 return 指向最终 SelectedRows_t
:
的指针解决了这个问题
SelectedRows_t* createSelectedRows() {
SelectedRows_t* selectedRowsTemp = (SelectedRows_t*)malloc(sizeof(selectedRows->rowsLen));
selectedRowsTemp->rowsLen=0;
return selectedRowsTemp;
}
SelectedRows_t* selectedRows = createSelectedRows();
我是 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 板上。
提前致谢。
我通过使用一个函数来完成我在其中的所有工作并 return 指向最终 SelectedRows_t
:
SelectedRows_t* createSelectedRows() {
SelectedRows_t* selectedRowsTemp = (SelectedRows_t*)malloc(sizeof(selectedRows->rowsLen));
selectedRowsTemp->rowsLen=0;
return selectedRowsTemp;
}
SelectedRows_t* selectedRows = createSelectedRows();