gpt4 book ai didi

c - 从指向数组的指针使用 memcpy

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:14 26 4
gpt4 key购买 nike

我有一个名为“item”的 typedef struct,它包含 2 个 char[254](产品名称和公司名称)和 9 个 int变量。 (价格、金额等)。

我从那个 typedef struct 和一个数组 (1D) 和一个二维数组创建了一个指针。

我已经使用 scanf 将数据存储到指针各自的变量中(到目前为止没问题)。

现在,我想将指针变量的数据“复制并存储”到数组 (1D),然后将一维数组的数据“复制并存储”到二维数组。

对于指向一维数组的指针,这是我所做的:

void pointer_conversion(item *a, item curr[10000], int total)
{
memcpy(&curr[total], a, sizeof(item*));
}
// Tried doing: memcpy(&curr[total],a,sizeof(item*) * 100);
// Why 100?= just to be safe. But still not working.

现在,此函数将指针 a 的第一个 char[254] 复制并存储到一维数组 curr 中,但其余的typedef struct 的变量为 NULL

有什么建议吗?

(在 Windows 上使用 VS2012)

typedef struct nodebase{
char productname[254];
char companyname[254];
int price;
int stocks;
//....
struct nodebase *next; //Use the struct as linked-list
}item;

最佳答案

考虑代码片段的作用,

  • 函数返回 void/nothing

    void
  • 函数名为pointer_conversion,接受三个参数

  • 参数 a 是指向项目的指针,(item*)
  • 参数 curr 是项目的数组,(item[10000])
  • 参数总数是一个整数

    pointer_conversion(item *a, item curr[10000], int total)
    {
  • memcpy 接受三个参数,目标、源和要复制的字节数

  • sizeof(item*) 有多大?它和指针一样大。
  • 您要复制多少字节? sizeof(item) 有多大?

    memcpy(&curr[total], a, sizeof(item*));
    }
  • 但您可能不想复制项目*项目的下一个元素

关于c - 从指向数组的指针使用 memcpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19173173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com