|
포인터는 단지 어떤 데이터(여기에서는 buf[]라는 char 배열이 되겠죠?)의 주소를 기억하고 있을 뿐이므로,,
아래와 같은 코드는 당연히 바뀔수 밖에 없겠죠?
쉽게 이야기 하면 애들 8명(char 포인터) 데려다 놓고, 컵(char buf[3])을 하나 준비하고, 과일들(성적을 이야기함)을 차례로 컵에다 담으면서(그러면 전에 있던 과일들은 없어진다고 보고) 애들보고 컵안에 뭐를 넣었는지 기억하라고 하는 것과 동일합니다.
결과는 애들이 무엇을 기억하고 있던 정확하게 맞는 건 맨 마지막에 기억한 애의 기억뿐이겠죠..
그러면 애들의 기억을 모두 보존하려면 어떻게 해야 할까요??
컵을 8개 준비하고 컵하나씩 꺼내어 과일을 담은 후 애들에게 각각 들고(기억하고) 있으라고 하면 되겠네요....
^^
우리끼리 님이 쓰신 글 :
: #include <stdio.h>
: #include <stdlib.h>
:
: void main(){
: char *result[8]={0},buf[3];
: int i;
:
: for (i=0; i<8; i++){
: printf("성적 입력 >> ");
: scanf("%s",buf); //입력는 a+ ~ f까지..
: result[i] = buf ;
: printf("%s\n",result[0]);
: }
: }
:
: 제가 이렇게 짜봤는데요..
:
: 제 이론상으론 result[0] 일때 값이 안변하는거 같은데...
: 입력하면 값이 바뀌네요... 값이 안바뀌게 도와주세요..!!
|