大きな作業の一部Cの配列の長さ、つまり配列内の要素の数を表示しようとしています。配列は倍精度の配列であり、配列内の倍数である単一の整数を出力したい。 私はこのコードを持っている:c印刷配列の長さ
int array_length(double array[]) {
double length = 0;
length = sizeof(array)/sizeof(double);
printf("%G", length);
return 0;
}
をし、私はこのようなメインでそれを呼び出す:
int main(void) {
double test[] = {1.1,2.2,3.3,4.4,5.5};
array_length(test);
return 0;
}
しかし、これはエラーを返します:
error: ‘sizeof’ on array function parameter ‘array’ will return size of ‘double *’ [-Werror=sizeof-array-argument]
研究は
ことを私に言っていますsizeof(array)/sizeof(double);
は私に配列の長さを与えます、そして、私は "%G"を使ってこのコードが返す倍数を印刷できるようにしようとしています。
"double *"はlong doubleを意味するので、 "%G"を "%LG"に変更して "double"を "double double"に変更しようとしましたが、問題は解決しませんでした。ここで何が起こっているのですか?
'%zu'を使用して' size_t'値を出力してください – LPs
皆様にお返事ありがとうございます、今問題が見えます。私が解決策を見いだせば、私は試し続けていきます。 – Isaac