#include "stdafx.h"

class sbs{
public:
enum A{one, two, three, four};

int* Set(A a)   // 4가지 상황에 맞춰서 정수셑을 돌려주는 함수를 생각하고 있어요.
{
  switch(a)
  {
  case one:
   {
                int pa[3] = {1, 2, 3};
                return pa;
   }
  case two:
   {
                int pb[3] = {3, 4, 5};
                return pb;
   }
  case three:
   {
                int pc[3] = {5, 6, 7};
                return pc;
   }
  case four:
   {
                int pd[3] = {7, 8, 9};
                return pd;
   }
  }
}
};

void main()
{
int* cds;


sbs sk;
cds = sk.Set(sk.two);

printf("%d, %d, %d n%d, %d, %dn", cds[0], cds[1], cds[2], &cds[0], &cds[1], &cds[2]);  // 제대로 실행되는줄
for(int i = 0; i < 3; i++) printf("%d, %dn", cds[i], &cds[i]);  //
printf("%d, %d, %dn", &cds[0], &cds[1], &cds[2]);  //

}





이렇게 하면 첫번째 출력하는 부분은 제대로 출력되는데 그 뒤에 두번째, 세번째 출력할때는 메모리 주소는 같은데 내용이 바뀌네요...

이유가 뭘까요, 어떻게 고치면 제가 원하는 값을 얻을수 있을까요?