構造体へのポインタに対して操作を実行するにはどうすればよいですか?

カシュマフィア

長方形で異なる計算を行う複数の関数を持つCプログラムがあります。長方形と長方形の点をマッピングするために構造体を定義しました。長方形のポインターと2つのint値をパラメーターとして受け取り、それらのパラメーターに基づいて長方形を移動する関数(moveR)で立ち往生しています。

[![ここに画像の説明を入力してください] [1]] [1]私が遭遇している問題は、関数が新しい位置を更新しないことです。たとえば、「moveR()」の呼び出しでは、長方形の左上隅のx値を18に移動する必要がありますが、15を返し続けます。助けていただければ幸いです。

#include <stdio.h>

    struct point{
        int x, y;
    } point1, point2, answer, point1b, point2b;
    
    struct rectangle{
        struct point upperLeft, lowerRight;
    } R1;
    
    struct point centerR (struct rectangle R1){
        int centerx= (R1.lowerRight.x-R1.upperLeft.x)/2;
        int centery= (R1.lowerRight.y-R1.upperLeft.y)/2;
        struct point pointR;
        pointR.x= centerx;
        pointR.y= centery;
        return pointR;
    } 
    
    struct rectangle moveR(struct rectangle *R1, int x, int y){
        R1->upperLeft.x+x;
        R1->lowerRight.x+x;
        R1->upperLeft.y+y;
        R1->lowerRight.y+y;
        
        return *R1;
    }
    
    struct rectangle *R2;
    
    
int main()
{
    point1.x= 6;
    point1.y= 6;
    point2.x= 10;
    point2.y= 12;
    
    R1.upperLeft= point1;
    R1.lowerRight= point2;
    
    answer = centerR(R1);
    
    printf("The center of R1 is:\n");
    printf("The x value of the center is %d \n", answer.x);
    printf("The y value of the center is %d \n", answer.y);
    
    R2=  &R1;
    point1b.x=15;
    point1b.y=15;
    point2b.x=25;
    point2b.y=25;
    R2->upperLeft = point1b;
    R2->lowerRight= point2b;
    
    moveR(R2,3,4);
    
    printf("The position of R2 is:\n");
    printf("The x value of the upper left is %d \n", R1.upperLeft.x);
    
    return 0;
}```


  [1]: https://i.stack.imgur.com/I2pO5.png
コスモトロニック

あなたはここで数学をします:

R1->upperLeft.x+x;
R1->lowerRight.x+x;
R1->upperLeft.y+y;
R1->lowerRight.y+y;

では、結果をどこに保存しますか?次のように、更新された結果をR1に保存するつもりですか?

R1->upperLeft.x += x;
R1->lowerRight.x += x;
R1->upperLeft.y += y;
R1->lowerRight.y += y;

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

構造体へのポインタの配列を作成するにはどうすればよいですか?

分類Dev

Cの構造体へのポインタを逆参照するにはどうすればよいですか?

分類Dev

構造体にある関数ポインタを使用して関数を実行するにはどうすればよいですか?(C)

分類Dev

構造体の配列のチャンクに対してイテレータを実装するにはどうすればよいですか?

分類Dev

Cの構造体にポインタを割り当てるにはどうすればよいですか?

分類Dev

異なる構造体へのポインターに同じ関数を実装するにはどうすればよいですか?

分類Dev

構造体へのポインタを持つ構造体フィールドを取得するにはどうすればよいですか?

分類Dev

構造体が参照されている他の構造体の存続期間を超えないように、生のポインターを使用して構造体でPhantomDataを使用するにはどうすればよいですか?

分類Dev

従来のCAPIを呼び出すときに、最新のC ++で構造体へのポインターを他の構造体へのポインターに正しくキャストするにはどうすればよいですか?

分類Dev

ポインターを含む構造体へのポインターにcudaMalloc / cudaMemcpyを使用するにはどうすればよいですか?

分類Dev

その配列へのポインタを使用して、構造体の配列に含まれる構造体のフィールドにアクセスするにはどうすればよいですか?[C ++]

分類Dev

構造体へのポインタへのポインタのメンバーにアクセスするにはどうすればよいですか?

分類Dev

jsonb列をスキャンして構造体/ポインタのスライスにするにはどうすればよいですか?

分類Dev

構造体の配列でintポインタメンバーを初期化して動的に割り当てるにはどうすればよいですか?

分類Dev

Cのプロセス間でポインターを使用して構造体を共有するにはどうすればよいですか?

分類Dev

構造体へのポインタを保持するグローバル配列を初期化するにはどうすればよいですか?

分類Dev

構造体でconst文字列ポインタを正しく操作するにはどうすればよいですか?

分類Dev

goのタグではなく、構造体のタイプを使用して構造体を再整列するにはどうすればよいですか?

分類Dev

構造体にnullポインタを作成するにはどうすればよいですか?

分類Dev

Rustのロックされた構造体メンバーに対してイテレータを返すにはどうすればよいですか?

分類Dev

C ++で構造体へのポインターのベクトルを使用するにはどうすればよいですか?

分類Dev

構造体初期化子でポインタ型を使用するにはどうすればよいですか?

分類Dev

マップで構造体ポインタを使用するにはどうすればよいですか?

分類Dev

構造体のメンバーを指すポインターから、構造体の先頭へのポインターを移植可能な方法で計算するにはどうすればよいですか?

分類Dev

ポインタと配列を使用してネストされた構造体にアクセスするにはどうすればよいですか?

分類Dev

struct-copyを取得して、元の構造体と同じタイプの構造体を作成するにはどうすればよいですか?

分類Dev

構造体へのポインタのメンバーにアクセスするにはどうすればよいですか?

分類Dev

構造体ポインタを使用して文字名を設定するにはどうすればよいですか?

分類Dev

Goの構造体内のフィールドへの実際のポインターを取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    構造体へのポインタの配列を作成するにはどうすればよいですか?

  2. 2

    Cの構造体へのポインタを逆参照するにはどうすればよいですか?

  3. 3

    構造体にある関数ポインタを使用して関数を実行するにはどうすればよいですか?(C)

  4. 4

    構造体の配列のチャンクに対してイテレータを実装するにはどうすればよいですか?

  5. 5

    Cの構造体にポインタを割り当てるにはどうすればよいですか?

  6. 6

    異なる構造体へのポインターに同じ関数を実装するにはどうすればよいですか?

  7. 7

    構造体へのポインタを持つ構造体フィールドを取得するにはどうすればよいですか?

  8. 8

    構造体が参照されている他の構造体の存続期間を超えないように、生のポインターを使用して構造体でPhantomDataを使用するにはどうすればよいですか?

  9. 9

    従来のCAPIを呼び出すときに、最新のC ++で構造体へのポインターを他の構造体へのポインターに正しくキャストするにはどうすればよいですか?

  10. 10

    ポインターを含む構造体へのポインターにcudaMalloc / cudaMemcpyを使用するにはどうすればよいですか?

  11. 11

    その配列へのポインタを使用して、構造体の配列に含まれる構造体のフィールドにアクセスするにはどうすればよいですか?[C ++]

  12. 12

    構造体へのポインタへのポインタのメンバーにアクセスするにはどうすればよいですか?

  13. 13

    jsonb列をスキャンして構造体/ポインタのスライスにするにはどうすればよいですか?

  14. 14

    構造体の配列でintポインタメンバーを初期化して動的に割り当てるにはどうすればよいですか?

  15. 15

    Cのプロセス間でポインターを使用して構造体を共有するにはどうすればよいですか?

  16. 16

    構造体へのポインタを保持するグローバル配列を初期化するにはどうすればよいですか?

  17. 17

    構造体でconst文字列ポインタを正しく操作するにはどうすればよいですか?

  18. 18

    goのタグではなく、構造体のタイプを使用して構造体を再整列するにはどうすればよいですか?

  19. 19

    構造体にnullポインタを作成するにはどうすればよいですか?

  20. 20

    Rustのロックされた構造体メンバーに対してイテレータを返すにはどうすればよいですか?

  21. 21

    C ++で構造体へのポインターのベクトルを使用するにはどうすればよいですか?

  22. 22

    構造体初期化子でポインタ型を使用するにはどうすればよいですか?

  23. 23

    マップで構造体ポインタを使用するにはどうすればよいですか?

  24. 24

    構造体のメンバーを指すポインターから、構造体の先頭へのポインターを移植可能な方法で計算するにはどうすればよいですか?

  25. 25

    ポインタと配列を使用してネストされた構造体にアクセスするにはどうすればよいですか?

  26. 26

    struct-copyを取得して、元の構造体と同じタイプの構造体を作成するにはどうすればよいですか?

  27. 27

    構造体へのポインタのメンバーにアクセスするにはどうすればよいですか?

  28. 28

    構造体ポインタを使用して文字名を設定するにはどうすればよいですか?

  29. 29

    Goの構造体内のフィールドへの実際のポインターを取得するにはどうすればよいですか?

ホットタグ

アーカイブ