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("할당된 곳의 초기값 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] 이죠?
#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 프로그래밍 예제