1. ホーム
  2. c

[解決済み] strcpyのセグメンテーションフォールト [重複]。

2022-01-29 13:36:08

質問

以下のコードでセグメンテーションフォールトが発生するのはなぜでしょうか。

int main(void)
{
        char str[100]="My name is Vutukuri";
        char *str_old,*str_new;

        str_old=str;
        strcpy(str_new,str_old);

        puts(str_new);

        return 0;
}

解決方法は?

を初期化していない。 *str_new をコピーしているだけなので str_old をランダムなアドレスに変換します。 このどちらかを行う必要があります。

char str_new[100];

または

char * str = (char *) malloc(100);

を行う必要があります。 #include <stdlib.h> malloc関数を使用する際に、まだ使用されていなければ