C++에서는 또 저렇게 작성하면 오류 뜨던데 C는 안그러더라구요...
글고 제가 알고싶은건
저기 main 함수에서 print2Darr 에게 파라미터 넘겨줄 때에 arr[5][5]가 왜 오류가 안뜨는지에요
파라미터로 줄 때도 선언할 때처럼 괄호안을 인덱스가 아니라 사이즈로 보나요?
C++에서는 또 저렇게 작성하면 오류 뜨던데 C는 안그러더라구요...
글고 제가 알고싶은건
저기 main 함수에서 print2Darr 에게 파라미터 넘겨줄 때에 arr[5][5]가 왜 오류가 안뜨는지에요
파라미터로 줄 때도 선언할 때처럼 괄호안을 인덱스가 아니라 사이즈로 보나요?
뭔가 잘못이해하고계신거같은데 인자를 제대로 넘겨줬는데 왜 오류가뜨겟나요
print2Darr이 원하는 인자는 int형 2차원배열이고 한줄이 5개짜리임. 님이 넘긴 arr[5][5]는 그 조건을 만족하는 2차원배열이니 문제가없잖아요
병신아 [][5]나 [5][5]나똑같아
흠 그냥 2차원 배열이기만 하면 되는건가
[][5]는 [0][5]가아니라 [x][5]에요. 2차원배열 다시공부하샘. 왜 앞의 인덱스는 생략가능한데 뒤에꺼는 써줘야하는지
arr[5][6]으로 넘겨주고 컴파일 해도 실행은 되던데요
아씨발병신아 저기코드에서 [5][6]접근한적잇냐?
오류 떠야된다 arr[5][5]의 자료형은 int인데 이게 int (*)[5]로 자동으로 변환될 리가 없지
배열인덱스 넘어가는것에대한 접근에 오류가 나는지안나는지 직접확인해보세요. int arr[2][2]; 선언하고 int arr[3][3]의값을 출력해보세요. 잘되죠? 된다는거에요. 그런접근이
밍고스사랑해 - 그래서 문제난다고 매개변수 arr[][5]로 넘겨야댄다고했는데 저게 저런식으로 컴파일되는 컴파일러가있다던데 내 vs에서는 안되던데
저게 어떻게 컴파일이대지
print2Darr(arr,5);이런식으로해야한다고. 근데 이사람말대로 vs에서 cpp말고 c로 해서 저런식으로 인자넘겨도 컴파일되긴하는데 왜그런진모르겠음
근데 컴파일해보면알겠지만 결과적으로 제대로되는게아님
캐스팅이 어떻게 되는진 모르겠지만.. 제대로 의도한대로 되는게아니니까 저건 잘못된사용임. 컴파일이되더라도.
정리하면 // [][5]는 [x][5]이고, 매개변수로 2차원배열을 요하는 함수이니 arr을 넘겨야하는거고, arr[5][5]를 매개변수로 넘기는건 어찌캐스팅되서 컴파일까지는되는지 잘모르겠지만 님이 의도한 arr을넘기는것과는 다른의미인 다른결과를 내는 잘못된 사용 /
http://ideone.com/HzLVBH