구조체끼리 연결 왜 안될까요?
도담
2024.04.21
질문 제목 :
구조체끼리의 연결이 왜 안될까요
질문 내용 :
typedef struct
{
int x, y;
}item;
typedef struct
{
int len;
item* p;
}snake;
이렇게 선언해놓고
main함수에 snake snake[100]; , item item; 이렇게 한 후에
(snake[0].p)-x = 3;
printf(%d, (snake[0].p)-x);
이런식으로 테스트해보니까 컴파일 에러는 안나는데
실행해보니까 바로 작동이 중지되었습니다 뜨면서 꺼지네요
왜 안되는걸까요? 어떻게 수정해야할까요?
-
창의적 2024-04-21
snake[0].p 에서 ITEM* 인 p 가 가리키는 곳이 없습니다. 포인터 변수는 선언만 해놓고 무조건 사용할 수
있는게 아니라, 할당된 어떤 메모리를 가리키고 있어야 하는데, 위 코드는 그 부분이 없죠~
snake[0].p = &item; // p가 ITEM 변수를 가리키게 하고...
이제 p는 item 변수를 가리키게 되었으니...다음의 코드가 성립~
(snake[0].p)-X = 3;
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2654185 | 64bit 환경에서 자료형의 크기가 좀궁그해요(완료) 더궁금한게 생겻어요(추가) (2) | 빈길 | 2024-05-08 |
2654152 | 확장자 exe로 변경 (1) | 한 | 2024-05-08 |
2654128 | c언어 간단하게 자판기만들려는데 ㅜㅜ | 유1혹 | 2024-05-08 |
2654074 | 배열에 들어있는값을 포인터에 옮기고 싶어요.. | 소라 | 2024-05-07 |
2654043 | 이차원 배열에 있는 값들 더하기.. | 선아 | 2024-05-07 |
2654011 | c언어 대문자소문자, 소문자대문자 변형하기, | 샤르 | 2024-05-07 |
2653985 | 실수 자료형 표현범위있잖아요 (1) | 패틱 | 2024-05-06 |
2653957 | 뭐가틀린건가요?.. (2) | 볼1매그녀 | 2024-05-06 |
2653934 | malloc을 이용한 출력 (1) | 하예 | 2024-05-06 |
2653906 | 숫자 야구 게임인데요.. (2) | 상큼한캔디 | 2024-05-06 |
2653883 | 구조체 질문이요.. 연결리스트. (1) | 별 | 2024-05-05 |
2653802 | 배열에 저장된 데이터와 원하는 데이터비교하는것좀.. | 리카 | 2024-05-05 |
2653727 | 고수님들 봐주세요~ (2) | 아담 | 2024-05-04 |
2653702 | C언어 의 단계가 어떻게 되나요???????????????? (3) | 길가온 | 2024-05-04 |
2653645 | 저....while인데..이게무슨뜻인지좀.. | 설희 | 2024-05-03 |
2653613 | 성별변수 | 뿡뿡 | 2024-05-03 |
2653584 | 16진수 변환 관련 질문 드립니다. | 매미꽃 | 2024-05-03 |
2653557 | 한글 완성형과 조합형의 전환 | 해지개 | 2024-05-02 |
2653506 | void형 포인터 이해안가요 ㅠㅠ (2) | 뭘봐요 | 2024-05-02 |
2653482 | 패턴매칭에 대한 질문하나 올립니다 | 미투리 | 2024-05-02 |