C 프로그래밍 질문

C 프로그래밍 질문

작성일 2023.12.06댓글 2건
    게시물 수정 , 삭제는 로그인 필요

#include <stdio.h>
#include <malloc.h>
int main()
{
int* p, * s;
int i, j;

printf("malloc() 함수 사용\n");
p = (int*)malloc(sizeof(int) * 3);
for (i = 0;i < 3;i++)
printf("할당된 곳의 초기값 p[%d] = = > %d\n", i, p[i]);

free(p);

printf("\ncalloc() 함수 사용\n");
s = (int*)calloc(sizeof(int), 3);
for (j = 0;j < 3;j++)
printf("할당된 곳의 초기값 s[%d] = = > %d\n", j, s[j]);

free(s);
}

1. malloc()과 calloc() 을 배우고 있는데 교수님의 ppt에서의 p[0],p[1],p[2] 의 출력값이 제가 집에서 제 컴퓨터로 실습해본 출력값 p[0],p[1],p[2] 이 완전히 일치할 수가 있나요..? 찾아보니까 malloc() 함수로 할당된 메모리의 초기값은 보장되지 않기 때문에 실행할 때마다 p[i] 값이 다를 수 있습니다. 실제로 malloc() 함수로 할당된 메모리는 이전에 사용되었던 값이나 메모리 영역의 이전 사용 내역에 따라 초기값이 달라질 수 있습니다

라고 하는데 제가 교수님의 ppt 를 따라서 실습하면서 이전 실습의 코드에서의 p값이 같아졌기 때문인가요?

2. 왜 p[0] = [p1] = p[2] 이죠?


#c 프로그래밍 #c 프로그래밍 사이트 #c 프로그래밍 현대적 접근 #c 프로그래밍 pdf #c 프로그래밍 책 #c 프로그래밍 언어 #c 프로그래밍 툴 #c 프로그래밍 기초 #c 프로그래밍 현대적 접근 번역 #c 프로그래밍 예제

profile_image 익명 작성일 -

1. malloc() 함수를 사용하여 메모리를 할당할 때, 초기값은 보장되지 않습니다. 실행할 때마다 p[i]의 값이 다를 수 있습니다.

이전에 사용되었던 값이나 메모리 영역의 이전 사용 내역에 따라 초기값이 달라질 수 있기 때문입니다.

교수님의 ppt에서의 p[0], p[1], p[2]의 출력값이 집에서 실습한 출력값과 완전히 일치할 수 있는 경우는 드물 것입니다.

하지만 같은 컴퓨터에서 같은 조건으로 실행한다면 초기값이 비슷하게 나올 수도 있습니다.

2. p[0], p[1], p[2]가 모두 같은 값을 가지는 이유는 malloc() 함수를 사용하여 메모리를 할당할 때, 할당된 메모리 블록의 주소를 반환하게 되는데, 이 주소값이 연속된 메모리 블록을 가리키게 됩니다.

따라서 p[0], p[1], p[2]는 모두 같은 주소를 가리키게 되어 같은 값을 가지게 됩니다.

이는 동적으로 할당된 메모리 블록이 연속된 메모리 공간에 할당되기 때문입니다.

profile_image 익명 작성일 -

1. 달라질 수 있는 게 정상이며, malloc으로 할당한 공간의 초깃값은 정해져 있지 않습니다.

2.배열 p의 각 값이 같다는 보장 또한 없습니다.

c 프로그래밍 질문

c 프로그래밍 질문 책에 있는 코드 그대로 작성했는데 오류 뜨고 실행이 안됩니다..ㅠㅠ이유가 뭘까요? 문자열과 포인터 단원에 있는 모든 코딩 예제가 실행이 안돼요...

C프로그래밍 질문

... 제가 c프로그래밍 하고 있는데 첫번째 학점만 점수로 변환이 되고 나머지는 사진처럼 0으로 나오는데 왜 그런 건가요? 어디를 고쳐야 할까요? 복사 붙여넣기로 질문해...

c프로그래밍 질문입니다

... c프로그래밍 질문이 있습니다. #include <stdio.h> int main(void) { printf("%d, %d\n", 011, 022); return 0; } 하기와 같이 코드를 치고 실행을 하면 9, 18 이라는 결과가...

c 프로그래밍 질문 책에 있는 코드

c 프로그래밍 질문 책에 있는 코드 그대로 작성했는데 오류 뜨고 실행이 안됩니다..ㅠㅠ이유가 뭘까요? 문자열과 포인터 단원에 있는 모든 코딩 예제가 실행이 안돼요 const...

c 프로그래밍 질문 책에 있는 코드

c 프로그래밍 질문 책에 있는 코드 그대로 작성했는데 오류 뜨고 실행이 안됩니다..ㅠㅠ이유가 뭘까요? 문자열과 포인터 단원에 있는 모든 코딩 예제가 실행이 안돼요 const...

C프로그래밍 문제 질문

... C프로그래밍을 배우고 있는 학생입니다. 기말고사를 준비하며 기출문제를 풀던 중 의문이 있어 질문드립니다. 제가 알기론 8번 문제에서 scanf 함수를 사용해도...

C프로그래밍 질문

이게 무슨 얘긴지 모르겠어요 관계수식 : 비교연산자를 사용한 수식, 결과는 1(참) 또는 0(거짓) ex) a>b, a==b 논리수식 : 논리연산자를 사용한 수식, 결과는 1(참)...

c프로그래밍 질문

답 좀 알려주실 수 있나요 어떤 값을 넣어봐도 잘 모르겠어요 [소스 코드 ] <> " " "" & < < < "" " " < "" " " "" 실행결과 캡쳐

C 프로그래밍 질문

#include <stdio.h> #include <malloc.h> int main() { int* p, * s; int i, j; printf("malloc() 함수 사용\n"); p = (int*)malloc(sizeof(int) * 3); for (i = 0;i < 3;i++) printf("할당된 곳의...