我正试图将一个动态结构数组的内容复制到另一个动态结构数组中,但我得到了一个错误,“无效的数组赋值”,希望有人能给我指明正确的方向。
下面是我的结构:
struct Agent
{
char name[C_STRING_SIZE];
int idNum;
double years;
char location[C_STRING_SIZE];
};
我的功能:
Agent *copyEncryptArray(Agent *agentArr, int numOfAgents)
{
Agent *encryptArr = new Agent[numOfAgents];
for (int i = 0; i < numOfAgents; i++)
{
encryptArr[i].name = agentArr[i].name;
encryptArr[i].idNum = agentArr[i].idNum;
encryptArr[i].years = agentArr[i].years;
encryptArr[i].location = agentArr[i].location;
}
return encryptArr;
}
最后,我正在尝试加密代理的内容,然后复制到encryptArr,但我现在只是想弄清楚如何复制。这是一个课程,我们还没有涵盖memcpy,所以这不是一个选项。
您应该使用std::string
而不是char
数组。它是可分配的,有更多的优点,包括几乎不受限制的字符串长度。
struct Agent
{
std::string name;
int idNum;
double years;
std::string location;
};
如果您由于某种原因不幸被迫使用数组,您将不得不为每个元素赋值。
如果保证数组的内容始终是字符串(由空字符终止的字符序列),则可以使用strcpy()
复制它们。
(我将只显示名称
的代码,但位置
也应该这样处理)
strcpy(encryptArr[i].name, agentArr[i].name);
如果不能保证这一点,则应使用memmove()
(因为此处禁用memcpy()
)。
memmove(encryptArr[i].name, agentArr[i].name, sizeof(encryptArr[i].name));
如果memmove()
也不幸被禁止,那么最后一个选项是逐个分配元素。
for (int j = 0; j < C_STRING_SIZE; j++)
{
encrypyArr[i].name[j] = agentArr[i].name[j];
}
比你想象的要容易。
for (int i = 0; i < numOfAgents; i++)
encryptArr[i] = agentArr[i];
数组中的每个值都是满足一个“对象”的所有要求的东西,并且可以作为一个整体进行复制/移动。不需要麻烦复制结构
的每个成员。
问题内容: 我正在尝试解组以下YAML(使用gopkg.in/yaml.v2): 使用以下代码: 但这给了我以下错误: 顶级属性是动态的,因此我需要将它们解析为字符串,结构中的所有其他键将始终相同,因此这些部分的结构也是如此。我该如何解析? (完整代码位于https://github.com/tirithen/unit- conversion/blob/master/convert.go#L84
问题内容: 我正在一个项目中使用JSON作为创建Java对象的配置框架。这也是我来自CF / PHP / JS等方面多年经验的第一个专业Java项目。 在将JSON转换为Java时,我能找到的所有资源都基于以下想法:您必须先在Java中手动构建对象,即POJO,然后使用JSON进行填充。 作为网络语言的资深人士,我对此想法感到窒息。我发现编译后的语言起着不同的作用,但是我认为从命令行到机器语言的共
问题内容: 我有两个成员相同,我想将一个结构复制到另一个结构,请参见下面的伪代码: 然后,我有结构的,而结构的,有什么办法复制的? 问题答案: 使用转换更改类型。以下代码使用转换将type 的值复制到type 的值: 游乐场的例子 该转换仅在基础类型,除了结构标签相同的工作。
问题内容: 我有传入的有效负载,无法更改。 我需要获取“数据”的第一个索引并创建一个新的JSON对象,如下所示… 然后从中构建一个,其数据结构的长度为5k个“主机”。我能够将其映射到结构,但需要首先将其转换为这种格式。我了解如何解组JSON,但前提是可以将有效负载转换为上述格式。 问题答案: 我不确定我是否了解您的需求。 可能是这样的事情?可能需要做一些工作,例如使指向结构的指针切片而不是结构的切
动态规划 建议观看MIT算法导论-动态规划中的课程。
问题内容: 有没有办法复制通用结构(即属性名称未知的结构)并跳过单个已知属性? 这是我所知道的: 我函数的参数-我将称为参数-类型。 是一个结构。 具有已知的性质。 具有0到6左右的其他属性,这些属性都不是先验的。 一旦删除该属性,那么“剩余”就是30种可能的结构类型之一。 所以我想剥离出来(或更精确地进行复制,它省略),所以生成的代码的各个位,尝试了结构迫使其可能的类型之一就能成功。 我已经找到