文字列内の単語を置き換えたい。ここにコードがあります
char text[] = "This is a list of lists";
char *find = "list";
char* pos = NULL;
pos = strstr(text,find);
strncpy(pos,"test",4)
これはうまくいきますが、
char *text = "This is a list of lists";
char *find = "list";
char* pos = NULL;
pos = strstr(text,find);
strncpy(pos,"test",4)
これにより、セグメンテーション違反が発生します。
最初の例では、「テキスト」は配列であり、データはその場所にコピーされます。2番目の「テキスト」はポインターです。問題とは何ですか?