2016-09-29 7 views
-3

Iのたい機能を変更します。配列は、ポインタを持つ構造体の配列の各要素を変更するポインタ

私は私が関数内でポインタ正しい方法を使用しています二つの異なるサイズの配列

struct color 
{ 

    char red; 
    char blue; 
    int white; 
}; 

struct colorInit 
{ 

    char red; 
    char blue; 
    int white; 
    int padding[60]; 
}; 


struct color batch1[30]; 

struct colorInit batchInitializd[30]; 

void modifystruct (struct color *ptr) 

{ 

    for (int i = 0; i < 30; i++) 

    { 

    ptr[i].red = batchInitializd[i].red; 

    ptr[i].white = batchInitializd[i].white; 

    ptr[i].blue = batchInitializd[i].blue; 

} 

} 

を使用していますか?

+0

。 **特定の**問題がある場合は、[mcve]と必要なすべての情報を入力してください。 See [ask]。 – Olaf

答えて

0

私は、関数にポインタ正しい方法を使用していますか?

構文的に言えば、はい。 30個の以上のオブジェクトの配列にptr点場合

機能が正常に動作します。それ以外の場合は、未定義の動作をします。 OPはbatchInitializdのオブジェクト・タイプを変更するので

には、以下のいずれかのより有効ではありません。

あなたはに機能を簡素化することができます:私たちは何の "私のコードをチェックし、" サイトません

void modifystruct(struct color *ptr) 
{ 
    for (int i = 0; i < 30; i++) 
    { 
     ptr[i] = batchInitializd[i]; 
    } 
} 

+0

今すぐコードを確認してください。 – Damodaran

+0

@Damodaran、それもいいですね。 –

+0

.....................サホーありがとう – Damodaran

関連する問題