게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
질문]구조체 배열을 함수 인자로 받는 법(c언어)
게시물ID : computer_86497짧은주소 복사하기
작성자 : 아이고이런
추천 : 0
조회수 : 12237회
댓글수 : 12개
등록시간 : 2013/05/02 21:07:42

/* 일단 소스부터 보시죠 */


typedef struct test

{

int decimal;

char check;

} test;


test* Make (term source[]);


int main (void)

{

test a1[100];

test a2[100][100];


a2[0] = a1;    //중간과정 생략하고 아무튼 a2[0]에 a1을 넣음.

a2[1] = Make (a2[0]);


return 0;

}


test* Make (term source[])

{

test *temp; 

//temp 초기화는 했음.

source[0].check = '1';

temp.decimal = 1;


return temp;

}

/* 여기까지가 소스 */


이렇게 하면 함수 Make에서의 source는 a2[0]의 "복사값"이 되는 건 알고 있습니다.

처음 작성할 때는 복사값만으로 충분했으니까요.

그런데, " source[0].check = '1'; " 이 부분을 추가하면서 문제가 생겼습니다.

일반 자료형 배열이라면 인자를 int source[]로 넘겨받아 함수에서 값을 바꾸면 원본도 바뀌거든요.


배열이 아니라 그냥 구조체면 함수 인자에 *source , 함수 내에서는 source->check를 사용하는 것까지는 책을 통해 알았습니다.


구조체 배열은 어떻게 처리해야할지 책을 찾아도, 구글링을 해도 시원한 답이 없어서 오유 능력자님들에게 도움을 구합니다.


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호