gpt4 book ai didi

c - Memcpy 到 malloced 结构内的数组

转载 作者:行者123 更新时间:2023-12-02 04:37:14 25 4
gpt4 key购买 nike

这是我的场景。

struct X {
char A[10];
int foo;
};
struct X *x;
char B[10]; // some content in it.
x = malloc(sizeof(struct X));

B复制内容到A,为什么下面的语法是正确的:

memcpy(x->A, B, sizeof(x->A));

这里x->A被当作一个指针,所以我们不需要&。但是我们应该需要 sizeof(*x->A) 对吗?但是使用 * 它不起作用,而没有 * 它工作正常。

是不是像sizeof操作符不把A当作一个指针?

最佳答案

A 不是指针,它是数组。所以 sizeof(x->A) 是正确的语法,它是整个数组的大小,即 10

的确,在许多情况下,数组名称会转换为指向第一个元素的指针。但是 sizeof(arrayname) 不是其中之一。

关于c - Memcpy 到 malloced 结构内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21719340/

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