4
void f(int *a, int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("%d\n", *(a+i));
}
}
위의 코드는 확인 일 : C의 함수에서 포인터를 배열로 전달 하시겠습니까? <code>main()</code>에 내가 전화하면
int a[] = {1,2,3};
int *p = a;
f(a, 3);
그러나 main()
의 경우
int *a =(int*) {1,2,3};
f(a, 3);
그런 다음, 프로그램이 충돌합니다. 나는 이것이 이상하게 보일지 모르지만 나는 공부하고 있고 그 차이점을 알고 싶다.
또한 다음과 같이 'a'를 지정할 수 있습니다 :'int * a = (int *) (int []) {1, 2, 3}; ' –
. 그러나 좋은 양심으로 그것을 권할 수는 없다.) –