フォーマット指定子のコンパイル エラーが多数ある既存の C ファイルを修正する必要があります。次の場合、誰でも正しいフォーマット指定子を教えてもらえますか:
u_char(*) [10](%s を試しましたが、うまくいきませんでした)char(*) [10](%s と %c を試しましたが、うまくいきませんでした)
ありがとう。
フォーマット指定子のコンパイル エラーが多数ある既存の C ファイルを修正する必要があります。次の場合、誰でも正しいフォーマット指定子を教えてもらえますか:
u_char(*) [10](%s を試しましたが、うまくいきませんでした)
char(*) [10](%s と %c を試しましたが、うまくいきませんでした)
ありがとう。
どちらも配列へのポインターであるため、それらを逆参照して配列にすることができます。配列は最初の要素へのポインターに減衰します。
char arr[10];
char (*pa)[10] = &arr;
printf("%s", *pa); // or &((*pa)[0])
それを詳しく説明すると、 is の型とpaischar(*)[10]の型で*paありchar[10]、後者はchar*の値&((*pa)[0])( に等しい&(arr[0])) に減衰します。
私はケレックに同意しますが、私は思う
printf ("%s", *pa);
最後に NULL 文字があるかどうかわからないため、そのままでは機能しない可能性があります。したがって、印刷するには、次のことができます
char temp[10+1];
memcpy(temp, *pa, 10);
temp[10] = '\0';
printf("%s",temp);