1. ホーム
  2. c

[解決済み] memcpy 使用時のセグメンテーションフォールト

2022-02-10 12:31:13

質問内容

memcpy()について基本的な質問があります。

私は、そのメンバーとしていくつかの配列を持つ構造体を持っています。
構造体のデータをバッファメモリにコピーしたい(malloc()で割り当てた)。

このとき、セグメンテーションフォールトが発生します。私はこの実装で何か間違ったことをしているのでしょうか?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAX 10

struct temp {
    int en;
    int one[MAX];
    int two[MAX];
 };

int main()
{
    struct temp *cpy;
    int *buffer, i;

    for(i=0; i<MAX; i++) {
            cpy->one[i] = i;
            cpy->two[i] = i * i;
     }

   buffer = malloc(3 * MAX * sizeof(int));
   memcpy(buffer, cpy, sizeof(struct temp));
}

完全なデータをバッファにコピーするには?

どのように解決するのですか?

cpy は、メモリへの初期化されていないポインタ(参照)に過ぎません。このポインタを初期化する必要があります。 for のループになります。