関数内のポインターの配列が、呼び出しで使用された配列の正しい値に表示されない

ジノン

私は次のプログラムを持っています。

#include <stdio.h> 

double getAverage(int *arr[], int size) { 
    int i, sum = 0; 
    double avg; 

    for (i = 0; i < size; ++i) 
    { 
        printf("%d %d\n", i, arr[i]);
        sum = sum + arr[i]; 
    }    
    printf("%d\n", sum);
    avg = (double)sum / size; 
    return avg; 
}

int main () 
{ 
    /* an int array with 5 elements */ 
    int balance[5] = {1000, 2, 3, 17, 50}; 
    double avg; 
    /* pass pointer to the array as an argument */ 
    avg = getAverage( balance, 5 ) ; 
    /* output the returned value */ 
    printf("Average value is: %f\n", avg ); 
    return 0; 
} 

出力が正しくありません。* arr []値を出力すると、残高値と同じではありません。このプログラムを修正する理由と方法を知っていますか?

0 1000                                                                                                                                                         
1 3                                                                                                                                                            
2 50                                                                                                                                                           
3 0                                                                                                                                                            
4 0                                                                                                                                                            
256992                                                                                                                                                         
Average value is: 51398.400000  
一部のプログラマーの男

あなたの関数は次のように宣言されています

double getAverage(int *arr[], int size)

つまり、最初の引数は、配列のことになっているポインタint

それからあなたはそれを次のように呼びます

getAverage( balance, 5 )

ここで、balanceはの配列でありint、最初の要素へのポインタに減衰します(つまりbalance、に等しい&balance[0])。これはタイプがありint *ます。

2つのタイプは不一致であり、コンパイラーはこれについて警告する必要があります。

解決策は、関数の引数を修正することです。

double getAverage(int *arr, int size)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Goの安全でないポインタ:関数呼び出しの終了により配列が強制終了されます

分類Dev

明示的なコマンドなしで関数呼び出しの間に配列ポインターデータがクリアされますか?

分類Dev

別の関数内で変更された後、ポインタの配列が変更されない

分類Dev

関数への再定義されたあいまいな呼び出しには配列パラメーターがあります

分類Dev

呼び出された関数で使用されたときに異なる値を与えるCの配列のサイズを見つけるためのポインターハックの理由

分類Dev

関数内でグローバル配列が宣言されていますが、呼び出されたときに値が表示されません

分類Dev

渡されたuint32_t配列ポインターを使用した関数でのmallocの正しい使用

分類Dev

関数が呼び出されるたびに、配列内に格納されているjQueryを実行しないでください

分類Dev

PHP:関数呼び出しで参照を使用しているときに配列が変更されないのはなぜですか?

分類Dev

キャッチされないエラー: 配列のメンバー関数 function() の呼び出し

分類Dev

配列の内容を変更しながら、配列内にあるポインターを使用して関数を呼び出す

分類Dev

mockitoを使用して配列要素をスパイすると、メソッドが呼び出されたときに必要なのに呼び出されない

分類Dev

配列のデータ値が正しく印刷されない

分類Dev

ポインタの配列のサイズが関数呼び出し内で見つからないのはなぜですか?

分類Dev

オブジェクトのインスタンスを呼び出した後、静的配列メンバー変数に何も表示されないのはなぜですか?

分類Dev

保存関数を呼び出さない解析での可変配列への新しいデータの保存

分類Dev

マスクされた配列の有効な値に対する関数の呼び出し

分類Dev

特定の関数呼び出しがVTuneに表示されない

分類Dev

クラス内のいくつかの配列でdelete []を呼び出しているときに「ヒープ破損が検出されました」-C ++

分類Dev

Petapoco-Oracleパイプライン関数を呼び出すと、「サポートされていない列のデータ型」例外が発生します

分類Dev

関数内のhvplot呼び出しがJupyterNotebookに表示されない

分類Dev

非表示の入力値で呼び出されない関数が変更されましたJquery

分類Dev

関数内で呼び出されたときに複数のワーカーを使用しないThreadPoolExecutor

分類Dev

関数内で呼び出されたときに複数のワーカーを使用しないThreadPoolExecutor

分類Dev

AngularJS配列値にHTMLタグが含まれているため、呼び出されたときに正しく表示されません

分類Dev

関数内で生成された配列を、Pythonで呼び出された別の関数(統合)に渡す

分類Dev

PHP配列の値は正しいが、正しく表示されない

分類Dev

[Python]他の関数で呼び出された配列関数

分類Dev

文字列関数で「charconst *」のインスタンスをスローした後に呼び出された終了

Related 関連記事

  1. 1

    Goの安全でないポインタ:関数呼び出しの終了により配列が強制終了されます

  2. 2

    明示的なコマンドなしで関数呼び出しの間に配列ポインターデータがクリアされますか?

  3. 3

    別の関数内で変更された後、ポインタの配列が変更されない

  4. 4

    関数への再定義されたあいまいな呼び出しには配列パラメーターがあります

  5. 5

    呼び出された関数で使用されたときに異なる値を与えるCの配列のサイズを見つけるためのポインターハックの理由

  6. 6

    関数内でグローバル配列が宣言されていますが、呼び出されたときに値が表示されません

  7. 7

    渡されたuint32_t配列ポインターを使用した関数でのmallocの正しい使用

  8. 8

    関数が呼び出されるたびに、配列内に格納されているjQueryを実行しないでください

  9. 9

    PHP:関数呼び出しで参照を使用しているときに配列が変更されないのはなぜですか?

  10. 10

    キャッチされないエラー: 配列のメンバー関数 function() の呼び出し

  11. 11

    配列の内容を変更しながら、配列内にあるポインターを使用して関数を呼び出す

  12. 12

    mockitoを使用して配列要素をスパイすると、メソッドが呼び出されたときに必要なのに呼び出されない

  13. 13

    配列のデータ値が正しく印刷されない

  14. 14

    ポインタの配列のサイズが関数呼び出し内で見つからないのはなぜですか?

  15. 15

    オブジェクトのインスタンスを呼び出した後、静的配列メンバー変数に何も表示されないのはなぜですか?

  16. 16

    保存関数を呼び出さない解析での可変配列への新しいデータの保存

  17. 17

    マスクされた配列の有効な値に対する関数の呼び出し

  18. 18

    特定の関数呼び出しがVTuneに表示されない

  19. 19

    クラス内のいくつかの配列でdelete []を呼び出しているときに「ヒープ破損が検出されました」-C ++

  20. 20

    Petapoco-Oracleパイプライン関数を呼び出すと、「サポートされていない列のデータ型」例外が発生します

  21. 21

    関数内のhvplot呼び出しがJupyterNotebookに表示されない

  22. 22

    非表示の入力値で呼び出されない関数が変更されましたJquery

  23. 23

    関数内で呼び出されたときに複数のワーカーを使用しないThreadPoolExecutor

  24. 24

    関数内で呼び出されたときに複数のワーカーを使用しないThreadPoolExecutor

  25. 25

    AngularJS配列値にHTMLタグが含まれているため、呼び出されたときに正しく表示されません

  26. 26

    関数内で生成された配列を、Pythonで呼び出された別の関数(統合)に渡す

  27. 27

    PHP配列の値は正しいが、正しく表示されない

  28. 28

    [Python]他の関数で呼び出された配列関数

  29. 29

    文字列関数で「charconst *」のインスタンスをスローした後に呼び出された終了

ホットタグ

アーカイブ