【发布时间】:2014-02-12 05:22:20
【问题描述】:
这是我的场景。
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 当作指针对待?
【问题讨论】:
标签: c arrays pointers sizeof memcpy