以下はなぜ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 バイト変数に割り当てるため、値は切り捨てられます。これは合法ですが、役に立ちません。acharchara
b実際に配列の最初の文字を に割り当てようとしていると思いますa。その場合はa = b[0].
C++ の strcpy_s 関数を使用してください。構文が &dest,*source であると役立つ場合があります。