質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

Q&A

解決済

3回答

1951閲覧

構造体とポインタで合算値を求める

nortordam

総合スコア25

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

0グッド

0クリップ

投稿2016/06/27 06:28

###構造体のnum1とnum2の合算値をresultに返したいです。

初心者なこともあり、はっきりと分かりません。できればヒントだけでもくださればうれしいです。

###発生している問題・エラーメッセージ

エラーメッセージ ```「17行目(addstruct(&NUM);)」で記述エラーを発見しました。 関数呼び出しに指定されているパラメータ数が少ないです。 呼び出している関数の引数の数を再確認してください。 ###ソースコード include<stdio.h> typedef struct numbers{ // 構造体の定義 int num1, num2, result; }NUM; void addstruct(int *x, int *y,int *m); int main(void){ // 変数の宣言 NUM number1; number1.num1 = 10; number1.num2 = 15; addstruct(&NUM); printf("num1=%d\nnum2=%d\nresult=%d\n",number1.num1,number1.num2,number1.result); return 0; } // addstruct関数 void addstruct(int *x,int *y,int *m){ NUM; *x = &number1.num1; *y = &number1.num2; *m = &result; &m = &x + &y; return m; } ###試したこと 一応、グーグルなどを用いて調べたりもしました。 ###補足情報(言語/FW/ツール等のバージョンなど) 使用したツールは学習用C言語開発環境です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

addstruct関数の引数と呼び出しているところの引数が一致していないからですね。
この場合、構造体で受け渡せばよさそうなので、addstruct関数の書式および中身は次で良いはずです。
戻り値も必要ないですね。

c

1void addstruct(NUM *m){ 2 m->result = m->num1 + m->num2; 3}

投稿2016/06/27 06:43

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

KoichiSugiyama さん ttyp03 さん の書かれている内容に加えて
addstruct関数のプロトタイプ宣言を変更するか?
今の宣言を削除して、main関数より前にaddstruct関数を記述するか
修正が必要です。

投稿2016/06/27 13:38

ai_2013_dev

総合スコア338

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ttyp03さんの書かれている内容に加えて、addstruct関数に渡す引数が間違っています。

C

1// 変数の宣言 2NUM number1; 3number1.num1 = 10; 4number1.num2 = 15; 5 6addstruct(&number1);

投稿2016/06/27 08:26

KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問