동적할당 너무모르겠어요 ㅠㅠ
빈길
#includestdio.h
#includestring.h
#includestdlib.h
int main(){
int *arscore;
int i,stnum;
int sum=0;
printf(학생수를 입력하세요: );
scanf(%d,&stnum);
arscore=(int *)malloc(sizeof(int)*stnum);
if(arscore== NULL){
printf(메모리가 부족합니다.);
return 0;
}
for(i=0; istnum;i++){
printf(%d번 학생의 성적을 입력하시요 :,i+1);
scanf(%d,&arscore[i]);
}
for (i=0;istnum;i++){
sum+=arscore[i];
}
printf(총점은 %d점이고 평균은%d점입니다.,sum,sum/stnum);
free(arscore);
getch();
}
이런 소스가있습니다 여기에서int *arscore; 이런식으로 포인터형변수 arscore을 선언하였습니다. 그런대 다음부턴 *을 붙이지 않은채 arscore 이런식으로 쓰여있는대 도대체 차이점이먼가요;; 초반에 선언을하면다음부턴 arscore 일케만써도 포인터형 변수*arscore 라는뜻이랑 같은거나요 ? 정말 이해가안되네요 ㅠㅠ 개념을잡아야할탠대..
-
찬슬
음그러면 앞에서 그냥변수 int arscore는쓰지않았는대 막 뒤에 써도되나여?
-
우시
int* arscore -이런식으로 하는게 이해가 빠를 겁니다.(하지만 int *arscore로 쓰는게 편해요)
포인터에서
&arscore 이건 포인터 변수의 메모리를 가르키는 거고요,
arscore 이건 어떤 변수의 메모리를 가르키는 거고요,
*arscore 이건 그 변수의 메모리가 가지고 있는 값을 의미합니다. -
히나
무슨말씀이시죠 그러니까 처음에쓴 *arscore와
나중에 나오는 arscore가 같다는 소리인가요? -
헤벌심
처음에 동적할당을 위해서 포인터로 선언해주는것같습니다..