ポインタがまだあまり理解できていないので、かなり酷いコードになっています。
前提・実現したいこと
引数としてdouble型の配列名を与えると,配列のすべての要素の和を返す関数を定義し,main関数から呼び出して動作を確認するプログラムを作成したい。
発生している問題・エラーメッセージ
double *pの部分に"variable 'p' set but not used [-Wunused-but-set-variable]"という警告が表示されてしまう。
該当のソースコード
C言語
1#include <stdio.h> 2 3#define N 1000 4 5double suma(double *p, double size); 6 7int 8main(void) 9{ 10 double s; 11 double a[N] = {1, 2, 3}; 12 double *p; 13 p = a; 14 15 a[N - 1] = -10; 16 s = suma(a, sizeof a / sizeof a[0]); 17 printf("%lf\n", s); 18 19 return 0; 20} 21 22double 23suma(double *p, double size) 24{ 25 int i; 26 double s; 27 for (i = 0; i < N; i++) { 28 s += *p++; 29 } 30 return s; 31}
試したこと
-4.000000と表示される。
補足情報(FW/ツールのバージョンなど)
要素の和は-4であっていると思うのですが、そもそも引数としてdouble型の配列を与える仕方がこれであっているのかわからない。
main関数のポインタ変数pは必要ですか?
回答3件
あなたの回答
tips
プレビュー