가능한 중복 :
How to get the size of dynamically allocated 2d array인쇄 배열 기능 첫 번째 요소
나는 내가 잘못 여기에 무슨 짓을 찾을 수 없습니다. 그 크기가 사용자 입력을 기반으로 배열을 만들고, 사용자 입력에서 배열에 대한 데이터 (정수)를 얻고, 배열 정수를 인쇄하고 싶습니다.
문제는 첫 번째 배열 요소 (예 : intArr[0]
) 만 인쇄한다는 것입니다.
int main()
{
int i, n, *intArr;
printf("Type the array size:\t");
scanf("%d", &n);
intArr = (int *)malloc(n * sizeof(int));
for (i = 0; i < n; ++i)
{
printf("Type a number\t");
scanf("%d", intArr + i);
}
printArr(intArr);
}
void printArr(int *arr)
{
int i;
for (i = 0; i < (sizeof(arr)/sizeof(*arr)); ++i)
printf("%d ", *(arr + i));
}
이 질문도 관련성이 있습니다. [** sizeof (배열을 가리키는 포인터)를 찾는 방법 **] (http://stackoverflow.com/questions/492384/how-to-find-the- sizeofa-pointer-pointing-to-an-array) - 포인터를 가리키는 포인터의 크기를 알아내는 것이 불가능하다는 것을 몰랐습니다. – tempy