아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
말끔한부엉이66
말끔한부엉이6620.10.02

c언어 구조체 안에 있는 변수는 비교를 못하나요?

예를 들어

typedef struct a

{

int a_1

int a_2

int a_3

}A;

A* aa = NULL;

라는 구조체가 있다고 가정하고 malloc이랑 기타 이것저것 다 했다고 가정하고 하겠습니다.

(aa+0).a_1에 "1"이 들어가있고

(aa+1).a_1에 "2"가 들어가있다고 할때

if((aa+0).a_1 < (aa+1).a_1)

printf("true");

가 가능한가요?

55글자 더 채워주세요.
답변의 개수
2개의 답변이 있어요!
  • 아래처럼 비교하면 되지 않을까 합니다.

    #include <stdio.h> #include <string.h> struct A { int a_1; int a_2; int a_3; }; int main() { struct A a1; struct A a2; a1.a_1 = 40; a2.a_1 = 30; if (a1.a_1 > a2.a_1) { printf("a1가 더 크다 "); } else { printf("a2가 더 크다 "); } return 0; }


  • 가능합니다. 그런데 포인터 주소에 대한 접근 -> 이라던지 이런것만 설정 잘해주시면 문법적으로는 오류 없어 보이네요.

    구조체 변수 대입 및 비교에 관한 블로그 글입니다. 참고해서 보시면 좋을 듯합니다.

    https://ss0x00.tistory.com/24

    결국에는 구조체 안에 변수도 일반 변수와 똑같은 변수가 되는 것이죠. 단지 구조체 안에 있기 때문에 접근하기 위해서는 .과 포인터인 경우에는 -> 으로 접근하는 것이고죠.