次のようなコードを見ました:
struct Hello
{
int age;
int time;
int data[1];
};
struct Element
{
int a;
int b;
};
struct Element element_[5] = (/* Initiate the array */);
struct Hello* hello = (struct Hello*)malloc(sizeof(Element)*5);
struct Element * element_p = NULL;
element_p = (struct Element *)hello->data;
for(int i = 0; i<5; i++)
{
memcpy(element_p, &element_[i], sizeof(struct Element));
}
この行: element_p = (struct Element *)hello->data;
、なぜキャストする必要があるのhello->data to (struct Element *)
ですか? そして、これはelement_p
will のポインターに対する操作が に対して同じことをするということhello->data
ですか? struct Element element_[5]
そして、この行は の各要素の各要素のアドレスを埋めhello->data
ますか?