如何在结构中动态添加数据,该结构是指向指针数组的指针
How to add data dynamically in structure which is a Pointer to an array of pointers
我有两个结构如下:
typdef struct abc
{
int id;
char name;
}s_abc,*lpabc;
typdef struct result
{
int acc_no;
lpabc *details;
}s_res;
我需要在指向指针数组的结构结果中动态添加数据,即:struct abc
结构 abc
可以是 5 个值的数组,例如。
我应该如何添加值?
定义的结构是明确的:
为了更好地理解,我附上了以下结构:-
typedef struct _wfs_cdm_physicalcu
{
LPSTR lpPhysicalPositionName;
CHAR cUnitID[5];
ULONG ulInitialCount;
ULONG ulCount;
ULONG ulRejectCount;
ULONG ulMaximum;
USHORT usPStatus;
BOOL bHardwareSensor;
} WFSCDMPHCU, *LPWFSCDMPHCU;
typedef struct _wfs_cdm_cashunit
{
USHORT usNumber;
USHORT usType;
LPSTR lpszCashUnitName;
CHAR cUnitID[5];
CHAR cCurrencyID[3];
BOOL bAppLock;
USHORT usStatus;
USHORT usNumPhysicalCUs;
LPWFSCDMPHCU *lppPhysical;
} WFSCDMCASHUNIT, *LPWFSCDMCASHUNIT;
typedef struct _wfs_cdm_cu_info
{
USHORT usTellerID;
USHORT usCount;
LPWFSCDMCASHUNIT *lppList;
} WFSCDMCUINFO, *LPWFSCDMCUINFO;
这里我需要访问 _wfs_cdm_physicalcu 的数据 4 次,即:一个数组。
停止在 C++ 中使用 C 习语;这只会导致混乱。
#include <string>
#include <vector>
struct abc {
int id;
std::string name;
};
struct result {
int acc_no;
std::vector<abc> details;
};
现在您可以轻松地向数组添加任意数量的 abc
值:
result r {42, {{1, "Mike"}, {2, "Fred"}}}; // inialise with two values
r.details.emplace_back(3, "Mary"); // add a third
我认为如果你想使用malloc,你应该定义一个指向struct abc 的指针。然后如果你找到一个新的,你可以 malloc 新内存并通过指针访问它。我也认为 STL 向量将是更好的选择。很方便。你可以学习一些关于STL的知识。太有意思了
我有两个结构如下:
typdef struct abc
{
int id;
char name;
}s_abc,*lpabc;
typdef struct result
{
int acc_no;
lpabc *details;
}s_res;
我需要在指向指针数组的结构结果中动态添加数据,即:struct abc
结构 abc
可以是 5 个值的数组,例如。
我应该如何添加值?
定义的结构是明确的: 为了更好地理解,我附上了以下结构:-
typedef struct _wfs_cdm_physicalcu
{
LPSTR lpPhysicalPositionName;
CHAR cUnitID[5];
ULONG ulInitialCount;
ULONG ulCount;
ULONG ulRejectCount;
ULONG ulMaximum;
USHORT usPStatus;
BOOL bHardwareSensor;
} WFSCDMPHCU, *LPWFSCDMPHCU;
typedef struct _wfs_cdm_cashunit
{
USHORT usNumber;
USHORT usType;
LPSTR lpszCashUnitName;
CHAR cUnitID[5];
CHAR cCurrencyID[3];
BOOL bAppLock;
USHORT usStatus;
USHORT usNumPhysicalCUs;
LPWFSCDMPHCU *lppPhysical;
} WFSCDMCASHUNIT, *LPWFSCDMCASHUNIT;
typedef struct _wfs_cdm_cu_info
{
USHORT usTellerID;
USHORT usCount;
LPWFSCDMCASHUNIT *lppList;
} WFSCDMCUINFO, *LPWFSCDMCUINFO;
这里我需要访问 _wfs_cdm_physicalcu 的数据 4 次,即:一个数组。
停止在 C++ 中使用 C 习语;这只会导致混乱。
#include <string>
#include <vector>
struct abc {
int id;
std::string name;
};
struct result {
int acc_no;
std::vector<abc> details;
};
现在您可以轻松地向数组添加任意数量的 abc
值:
result r {42, {{1, "Mike"}, {2, "Fred"}}}; // inialise with two values
r.details.emplace_back(3, "Mary"); // add a third
我认为如果你想使用malloc,你应该定义一个指向struct abc 的指针。然后如果你找到一个新的,你可以 malloc 新内存并通过指针访问它。我也认为 STL 向量将是更好的选择。很方便。你可以学习一些关于STL的知识。太有意思了