フォーマット指定子のコンパイル エラーが多数ある既存の 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 の型とpa
ischar(*)[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);