구조체 포인터 선언의 기억공간 할당 여부
327
投稿した質問数 6
구조체 설계
struct guy {
char favfood[10],
char job[10]
};
일 때는 기억공간을 아직 할당받지 않은 상태이고
구조체 변수 선언 혹은 선언 동시 초기화 할 때 메모리에 공간을 할당받는다고 이해했습니다.
struct guy barney; 이 때 기억공간을 할당받는다
포인터는 새로운 구조체를 생성하지 않고 기존의 동일 구조체를 가리킨다고 하셨는데, 구조체 포인터 변수는 구조체 포인터 변수 선언 시 메모리에 공간을 할당 받나요?
struct person* someone;
[정리]구조체 포인터 변수의 메모리 할당 시점이 궁금합니다.
回答 1
0
안녕하세요
포인터는 변수입니다. int 는 정수를 담는 변수이듯이 포인터는 주소라는 값을 담는 변수인 것이에요.
따라서 struct person* someone; (=person 구조체 인스턴스들의 주소를 담을 수 있는 변수) 의 할당 시점에 대해서 물으시는 것은
int * ptr; 혹은 int a; 의 할당 시점을 물으시는 것과도 같습니다.
구조체 메모리를 생성하는 것과는 상관이 없이, 기존의 구조체 메모리의 집 주소를 담는 것 뿐이구요,(그래서 구조체 인스턴스 메모리랑은 상관 없음. 그저 주소를 담는 것 뿐) 포인터의 할당 시점은 다른 변수들과 마찬가지로 선언 및 정의시 할당 됩니다. struct person* someone; 라고만 하셨다면 struct person 의 주소를 담을 수 있는 크기만큼의 메모리가 할당되며 초기화는 되지 않았으므로 쓰레기값이 들어있는 상태가 되겠네요.
(그리고 다음에 질문 주실 때 구체적인 강의 시간대를 함께 남겨주실 것을 부탁드립니다. "포인터는 새로운 구조체를 생성하지 않고 기존의 동일 구조체를 가리킨다고 하셨는데" 이 부분이 어디서 나오는지 모르겠어서요 ㅠ 감사합니다.)
Export template 안됨
1
30
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
57
3
main 함수에서 왜 int만 선언이 되는걸까요
1
57
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
55
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
49
1
프로토타입과 함수간의 인자 불일치
1
73
2
12.12 헤더 관련 질문
1
60
2
Visual Studio Community 2026 사용 문의
1
138
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
61
2
getchar(), putchar()
1
94
3
강의자리ㅛ
1
80
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
114
2
소스파일안에 여러 파일
1
76
2
F5와 F7의 차이
1
79
2
c = TWO * (a+b); 에서 a와 b는?
1
60
2
; 세미콜론을 붙이는 기준에 문의
1
70
1
Step over 기능 문의
1
53
2
2.6 강의 따옴표 출력 규칙 문의
1
76
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
61
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
65
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.6 fit_str함수를 구현해 봤습니다.
1
54
2

