C의 함수에 구조체 포인터 보내기

user8506163

나는 이것을 좋아하지 않지만 거의 45 명의 멤버가 내부에있는 구조체를 가지고 있습니다. 모두 문자 또는 문자 배열입니다. 즉, 각 구조체를 초기화하는 방식을 최적화해야합니다. 일반적으로 전체 객체를 init_struct () 함수에 전달하지만 이것이 최선의 방법은 아니라고 생각합니다.

이를 수행하기 위해 구조체에 대한 포인터를 어떻게 만들고 사용합니까?

이전 방법은 다음과 같습니다.

void init_struct(struct general){
...initialize members...
}

int main(){
  struct general[10];

  for(int i = 0 ; i < 10 ; ++i){
     init_struct(general[i];
  }

}

이 구조체가 너무 커서 내부에 거의 45 명의 멤버를 말했듯이 구조체에 대한 포인트가이 프로세스를 최적화하는 데 큰 도움이 될 것이라고 생각합니다. 어떻게해야합니까?


필요한 경우를 대비하여 여기에 내 구조체의 typedef가 있습니다.

typedef struct
{ 
  //Basically, everything we want to read from HUDL should be here...
  int play_num;
  char down;
  char dist[3];
  char ydln[4];
  char gnls[3];
  char hash[3];
  char home[20];
  char away[20];
  char odk[2];
  char qtr[2];
  char series[3];
  char result[20];
  char penalty[20];

  char act_cb[20]; //How do they act post-snap
  char act_dl[20];
  char act_lb[20];
  char act_ol[20];
  char act_qb[20];
  char act_rb[20];
  char act_saf[20];

  char aln_cb[20]; //How do they align pre-snap
  char aln_dl[20];
  char aln_lb[20];
  char aln_ol[20];
  char aln_qb[20];
  char aln_rb[20];
  char aln_saf[20];
  char aln_wr[20];

  char blitz[20];
  char box_cnt[3];
  char saf_count[20];
  char coverage[20];
  char cvr_basic[20];
  char def_front[20]; 
  char mtn_def[20];
  char num_rush[3];

  char off_form[20];
  char form_var[20];
  char motion[20];
  char off_pro[20];
  char off_play[20];
  char play_var[20];
  char personnel[20];
  char play_type[20];


  char time[2]; 
  char score_diff[4];
  char field_zone[2];
  char dd_type[2];
  char form_strength[2];

} HUDL; // MAXIMUM of 63 Members
스플래 튼

배열 요소에 대한 포인터를 전달하려면 매개 변수 앞에 &를 붙이고 함수를 올바르게 선언해야합니다.

    void init_struct(HUDL* pGeneral){
        if ( pGeneral != NULL ) {
    //This will ensure the entire structure contains '0'
           memset(pGeneral, 0, sizeof(HUDL));
    ...initialize members...
        }
    }

    int main(){
        HUDL general[10];

        for( int i=0; i<(sizeof(general) / sizeof(general[0])); i++ ) {
            init_struct(&general[i]);
        }
    }

왜 당신이 typedef 'HUDL'을 사용하지 않았는지 잘 모르겠습니다. 삶을 더 쉽게 잃고 코드를 읽기 쉽게 만듭니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

FreeRTOS의 대기열을 통해 구조체에 대한 포인터 보내기

분류에서Dev

구조체의 포인터에 대한 포인터 초기화

분류에서Dev

C ++ 포인터에서 배열의 대상 구조체를 포함하여 구조체에 대한 값 읽기

분류에서Dev

구조체 내의 동적 배열에 대한 포인터 C

분류에서Dev

C의 구조체에 대한 포인터 배열에서 정보 얻기

분류에서Dev

구조체의 함수 포인터

분류에서Dev

C : 구조체 초기화 및 함수 매개 변수의 포인터에 할당

분류에서Dev

c-구조체 내부 구조체에 대한 void 포인터

분류에서Dev

C ++ 포인터로 함수에 전달 된 구조체 수정

분류에서Dev

C ++ 함수에서 구조체에 포인터 사용

분류에서Dev

C ++에서 구조체에 대한 포인터 초기화

분류에서Dev

구조체의 포인터에서 배열 가져 오기

분류에서Dev

함수 C ++에 구조체 포인터 전달

분류에서Dev

구조체 내부의 포인터 값

분류에서Dev

함수 포인터가있는 구조체 배열 초기화 C

분류에서Dev

구조체 포인터 내부의 문자열에서 char 가리 키기

분류에서Dev

C의 구조체 내에서 포인터가 가리키는 자유 배열

분류에서Dev

C #의 구조체 내에 포함 된 구조체의 마샬링 배열

분류에서Dev

함수 포인터를 포함하는 c 구조체

분류에서Dev

함수에 전달 된 구조체의 배열에 대한 C 포인터

분류에서Dev

C 구조체, 구조체에 대한 공용체 포인터

분류에서Dev

구조체 정의 내에서 구조체를 받아들이는 함수에 대한 포인터를 선언 하시겠습니까?

분류에서Dev

구조체 인수의 함수 포인터?

분류에서Dev

구조체 내부 구조체에 대한 이중 포인터

분류에서Dev

포인터 함수에 인수로 자신을 전달하는 c 구조체

분류에서Dev

구조체 내부에 구조체에 대한 포인터 배열 만들기

분류에서Dev

Arduino : 함수 매개 변수로서의 구조체 포인터

분류에서Dev

C의 구조체 내부에서 구조체에 대한 포인터 배열을 선언 할 수 없습니다.

분류에서Dev

함수에 대한 구조의 초기화되지 않은 포인터

Related 관련 기사

  1. 1

    FreeRTOS의 대기열을 통해 구조체에 대한 포인터 보내기

  2. 2

    구조체의 포인터에 대한 포인터 초기화

  3. 3

    C ++ 포인터에서 배열의 대상 구조체를 포함하여 구조체에 대한 값 읽기

  4. 4

    구조체 내의 동적 배열에 대한 포인터 C

  5. 5

    C의 구조체에 대한 포인터 배열에서 정보 얻기

  6. 6

    구조체의 함수 포인터

  7. 7

    C : 구조체 초기화 및 함수 매개 변수의 포인터에 할당

  8. 8

    c-구조체 내부 구조체에 대한 void 포인터

  9. 9

    C ++ 포인터로 함수에 전달 된 구조체 수정

  10. 10

    C ++ 함수에서 구조체에 포인터 사용

  11. 11

    C ++에서 구조체에 대한 포인터 초기화

  12. 12

    구조체의 포인터에서 배열 가져 오기

  13. 13

    함수 C ++에 구조체 포인터 전달

  14. 14

    구조체 내부의 포인터 값

  15. 15

    함수 포인터가있는 구조체 배열 초기화 C

  16. 16

    구조체 포인터 내부의 문자열에서 char 가리 키기

  17. 17

    C의 구조체 내에서 포인터가 가리키는 자유 배열

  18. 18

    C #의 구조체 내에 포함 된 구조체의 마샬링 배열

  19. 19

    함수 포인터를 포함하는 c 구조체

  20. 20

    함수에 전달 된 구조체의 배열에 대한 C 포인터

  21. 21

    C 구조체, 구조체에 대한 공용체 포인터

  22. 22

    구조체 정의 내에서 구조체를 받아들이는 함수에 대한 포인터를 선언 하시겠습니까?

  23. 23

    구조체 인수의 함수 포인터?

  24. 24

    구조체 내부 구조체에 대한 이중 포인터

  25. 25

    포인터 함수에 인수로 자신을 전달하는 c 구조체

  26. 26

    구조체 내부에 구조체에 대한 포인터 배열 만들기

  27. 27

    Arduino : 함수 매개 변수로서의 구조체 포인터

  28. 28

    C의 구조체 내부에서 구조체에 대한 포인터 배열을 선언 할 수 없습니다.

  29. 29

    함수에 대한 구조의 초기화되지 않은 포인터

뜨겁다태그

보관