以下はなぜOKなのですか?
char *a;
char b[]="asdf";
a=b;
しかし、次はそうではありませんか?
char a[10];
char b[]="asdf";
a=b;
上記はエラーを返します: 割り当てに互換性のない型があります。
どちらも大丈夫ではありません。
多分あなたは試みていた、
char *a;
char b[]="asdf";
a=b;
char a;
char b[]="asdf";
a=b;
ここでは、タイプの配列のアドレスを割り当てb
ています。アドレスのサイズは 4 バイト (64 ビット m/c では 8 バイト) になり、1 バイト変数に割り当てるため、値は切り捨てられます。これは合法ですが、役に立ちません。a
char
char
a
b
実際に配列の最初の文字を に割り当てようとしていると思いますa
。その場合はa = b[0]
.
C++ の strcpy_s 関数を使用してください。構文が &dest,*source であると役立つ場合があります。