私はプログラムを書いた*文字を設定するように見えることはできません:私は「C」私を与えることを期待するは正しく
int main() {
char* test = malloc(5);
*test = "testc";
printf("Test=%c",test[4]);
}
を、それは最高の状態で私に何を与えていない、とセグメンテーションフォールトで最悪。私はおそらく何が間違っているのですか?別の変数を作成してstrncpy()
を作成する必要がありますか?私も試しました:
int main() {
char* test = malloc(5);
char* test2 = "test"
strncpy(test,test2,4);
}
正常に動作しますが、まあまあです。私はここで何か間違っていますか?あなたのケースでは
これを書くことができてもコンパイルされていないはずされ、あるいは少なくともそれはあなたに警告を与えているはずです。警告を無視しない*修正*してください。特に質問を投稿する前に。 –
'strncpy'を間違って使いました。その関数の使用を避けることは良いことです。エラーが発生しやすく、コードにバグが入るのを避けるために、そのドキュメントを慎重に読む必要があります。 strncpyよりも常に良い方法があります。 –