やりたいこと
先に代入しておいたHELLO
とTXT
の二つの間に"."を結合して次のように表示したい。
moji=HELLO.TXT
問題点
以下のプログラムを実行すると強制終了されてしまいます。
C
1#include<stdio.h> 2 3int main(void) 4{ 5 char *name="HELLO",*ext="TXT"; 6 char *moji=""; 7 sprintf(moji,"%s.%s",name,ext); 8 printf("moji=%s ",moji); 9 return 0; 10}
どこが原因なのか、また解決方法を教えてください。
char *moji=""; なので、moji は書き換え不可の文字列へのポインタになってるか、書き換え可能だとしても 1 バイト分しかないので、領域が足りてません。自分で必要なメモリ領域を確保する必要があります。