C++ 如何在指向指针数组的指针结构中动态添加数据

C++ 如何在指向指针数组的指针结构中动态添加数据,c++,arrays,pointers,struct,structure,C++,Arrays,Pointers,Struct,Structure,我有以下两种结构: typdef struct abc { int id; char name; }s_abc,*lpabc; typdef struct result { int acc_no; lpabc *details; }s_res; 我需要在指向指针数组的结构结果中动态添加数据,即:struct abc 结构abc可以是eg的5个值的数组。 我应该如何添加这些值 定义的结构是明确的: 为了更好地理解,我附上以下结构:- typedef struct _w

我有以下两种结构:

typdef struct abc
{
   int id;
   char name;
}s_abc,*lpabc;
typdef struct result
{
    int acc_no;
    lpabc *details;
}s_res;
我需要在指向指针数组的结构结果中动态添加数据,即:
struct abc
结构abc可以是eg的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;

<>这里需要访问4个数据的IWFSZCDMMUCARICU CUI:一个数组。

< P>停止使用C++中的C习语;这只会导致混乱

#include <string>
#include <vector>

struct abc {
    int id;
    std::string name;
};
struct result {
    int acc_no;
    std::vector<abc> details;
};

<> C++中使用C习语停止;这只会导致混乱

#include <string>
#include <vector>

struct abc {
    int id;
    std::string name;
};
struct result {
    int acc_no;
    std::vector<abc> details;
};


我认为如果你想使用malloc,你应该定义一个指向结构abc的指针。然后,如果您找到一个新的内存,您可以malloc新内存并通过指针访问它。我也认为STL向量将是一个更好的选择。非常方便。你可以学习一些关于STL的知识。这太有趣了。

我认为如果要使用malloc,应该定义一个指向结构abc的指针。然后,如果您找到一个新的内存,您可以malloc新内存并通过指针访问它。我也认为STL向量将是一个更好的选择。非常方便。你可以学习一些关于STL的知识。这很有意思。

因为这是C++,我建议你使用向量而不是动态数组。为什么指针指向第一个位置呢?请考虑将它更改为指针或某些C++容器,除非设计明确要求。我完全不明白您要做什么…code>details是一个指向数组的指针,您希望有多个
abc
s?还是要更改
abc
中的字段数?这完全混淆了
lpabc*的细节为什么要创建指向指针的指针?也许尝试用你试图实现的语义和语法来编写邮政编码。@穆希塔恩:我已经发布了RIFF的语法。因为这是C++,我建议你使用矢量而不是动态数组。为什么它指向指针的位置是第一位的。请考虑将它更改为指针或某些C++容器,除非设计明确要求。我完全不明白您要做什么…code>details
是一个指向数组的指针,您希望有多个
abc
s?还是要更改
abc
中的字段数?这完全混淆了
lpabc*的细节为什么要创建指向指针的指针?也许可以尝试使用您试图实现的语义和语法发布代码。@MohitJain:,我已经发布了ref的语法。@TechBrkTru:您没有,您可以通过向量访问它们
r.details[1]。name==“Fred”
。在我的结构中。。。struct wfs cdm PhysicalUC的前两个值保持不变,rest是动态的。即使“rest值”发生更改,此结构的地址也必须相同。Vector确实使用动态分配的数组来存储其元素。既然我有一个链接结构,例如:a->b> c,我需要c的值存在于“b”中,而b的值在“a”中的TekBrktu中:“MalOc”怎么样?——就像我说的,不要在C++中使用C语言。您可以使用
malloc
拼凑一些东西,非常小心地避免内存泄漏和更糟糕的情况,但是
vector
在为您管理所有内存分配时基本上做了相同的事情:如果有另一个结构命名,例如:typdef struct data{int a;char b result res;},该怎么办。我们可以通过vector获得结构数据中结构abc的值吗???@TechBrkTru:是的,您可以用通常的方式访问类成员。给定
数据d
您可以访问
d.res.details[2]。name
@TechBrkTru:如果不可以,您可以通过向量访问它们
r.details[1]。name==“Fred”
。在我的结构中。。。struct wfs cdm PhysicalUC的前两个值保持不变,rest是动态的。即使“rest值”发生更改,此结构的地址也必须相同。Vector确实使用动态分配的数组来存储其元素。既然我有一个链接结构,例如:a->b> c,我需要c的值存在于“b”中,而b的值在“a”中的TekBrktu中:“MalOc”怎么样?——就像我说的,不要在C++中使用C语言。您可以使用
malloc
拼凑一些东西,非常小心地避免内存泄漏和更糟糕的情况,但是
vector
在为您管理所有内存分配时基本上做了相同的事情:如果有另一个结构命名,例如:typdef struct data{int a;char b result res;},该怎么办。我们可以通过vector获得结构数据中结构abc的值吗???@TechBrkTru:是的,您可以用通常的方式访问类成员。给定
数据d
您可以访问
d.res.details[2]。name