gpt4 book ai didi

c - Memcpy 到 malloced 结构内的数组中

转载 作者:行者123 更新时间:2023-12-02 21:34:25 24 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/

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