これは文字列をコピーするはずですが、文字化けした結果を出力します。誰でも私を助けることができますか?
int main () {
const char *a = "Hello\n";
const char *b = "World\n";
strncpy(&b, &a, strlen(a));
printf("%s %s", a, b);
return 0;
}
「Hello Hello」を期待していますが、端末は次のように出力します。
\
Hello
GCC は、strncpy の署名にもかかわらず、a と b が互換性のないポインター型を持つという警告を出力します。
char * strncpy(char *s1, const char *s2, size_t n)
2 char ポインターを要求します。https://stackoverflow.com/a/20213168に記載されているように、配列は常に char** であるためですか?