void A(int* a)
{
i+=10;
a[0]=i;
i+=10;
a[1]=i;
}
void B(int** a)
{
*a= (int* )malloc(8);
i+=10;
*((*a)+0)=i;
i+=10;
*((*a)+1)=i;
}
void C(int* a)
{
a= (int* )malloc(8);
i+=10;
*(a+0)=i;
i+=10;
*(a+1)=i;
}
위와같은 함수가 있고
int main()
{
int **a;
a= (int**) malloc(12); //3개의 더블포인터 선언
a[0]=(int*) malloc(8);
A(*(a+0));
printf("%d \n", *(*(a+0)+0) );
system("pause");
B( (a+1) );
printf("%d \n", *(*(a+1)+0) );
system("pause");
C( *(a+2) );
printf("%d \n", *(*(a+2)+0) );
return 0;
}
위와 같이 선언하였다
문제가 나는 함수는?
i는 전역 변수로 i=0으로 선언되었습니다 :)
문제를 낼거면 컴파일해서 실행해 봐도 알 수 없는 문제를 내 ㅡ,.ㅡ
그렇겠죠? 사실 저는 저 에러가 왜 나는지 한참고민했거든요. 그래서 그냥 참고하라고 올려봤어욥 다음에 문제를 낼땐 좀더 고민해보겠습니다. : )