열 크기가 제공되지 않으면 컴파일러에서 크기 정보를 알 수없는 경우가 많습니다. 그러나 컴파일러가 행 크기를 어떻게 알 수 있습니까? 열 크기를 해석 할 수없는 이유는 무엇입니까?2d 배열을 함수로 전달할 때 열 크기를 지정하는 이유
답변
배열을 인수로 함수에 전달하는 동안 컴파일러는 암시 적으로 배열 참조를 포인터로 변환합니다. 이것은 분명히
int method(int *a)
int method(int a[])
같은 일차원 배열의 경우에서 볼 수있는 양이 라인 (포인터 배열 참조는 다르지만) 배열 식에 나타날 때마다 때문에, 컴파일러는 암시를 생성 여기 동등 프로그래머가 & a [0]을 쓴 것처럼 배열의 첫 번째 요소에 대한 포인터. 그러나이 규칙은 재귀 적이 지 않습니다. 즉, 2 차원 배열 전달은 포인터에 대한 포인터가 아니라 배열에 대한 포인터로 처리됩니다.
int method(int b[3][5]);
은
int method(int (*b)[5]);
로 변환 및 행의 크기는 중요하지 않습니다 때문에 호출 된 함수가 배열을위한 공간을 할당하지 않기 때문에, 열 그러나 크기의 크기를 제공하기 위해 여전히 중요하다 정렬. 자세한 내용은 here을 참조하십시오.
안녕, 라지. 좋은 게시 및 참조 주셔서 감사합니다. 그것은 저에게 정말로 새로운 것을주었습니다. 그러나 나는 여전히 한 문장으로 분명하지 않다. "호출 된 함수가 배열에 공간을 할당하지 않기 때문에 전체 크기를 알 필요가 없으므로 NROWS 행 수를 생략 할 수 있습니다. 여전히 중요합니다 " – nathan
2 차원 배열은 암시 적으로 포인터 배열이며, 모든 배열 크기에 대해 알고 있듯이 언급해야합니다. 여기서 크기는 열 크기입니다. @ user3529352 –
- 1. 배열을 함수로 전달할 때 값이 변합니다.
- 2. 동적 2D 배열을 함수로 전달합니다.
- 3. 2D 배열을 함수로 전달하여 TGraph에서 사용합니다.
- 4. 대소 문자 클래스를 함수로 전달할 수있는 이유
- 5. 2 차원 배열을 double 함수로 전달할 때 오류가 발생했습니다.
- 6. 정수 배열을 함수로 전달할 때 세그먼트 오류가 발생했습니다.
- 7. 모노 2d 배열을 함수에 전달할 때 디버거가 충돌합니다.
- 8. 2d numpy 배열을 C++로 전달할 때 TypeError
- 9. 해당 값을 함수로 전달할 때 값이 변경됩니까?
- 10. 2D 배열에서 함수로 전달
- 11. 문자열 배열을 함수로 전달
- 12. 2D char * 배열을 함수로 전달하는 중 오류가 발생했습니다.
- 13. C++ 2D 배열을 함수로 전달하는 중 오류가 있습니까?
- 14. ctype argtypes를 지정하는 이유
- 15. 함수로 전달할 때 Theano 데이터 세트 치수 오류
- 16. 변수를 함수로 전달할 수 있습니까?
- 17. 구조체를 함수로 전달할 때의 문제
- 18. 함수에서 인수를 전달할 때 올바르게 경로를 지정하는 방법은 무엇입니까?
- 19. 배열을 함수로 전달하려면
- 20. 문자열 배열을 전달할 때 WCF Comunication 예외
- 21. Paypal에 배열을 전달할 때 PHP 문제가 발생했습니다.
- 22. 배열을 전달할 때 클래스의 포인터가 잘못되었습니다.
- 23. 배열을 통해 부울을 전달할 때 java.lang.NullPointerException이 발생합니다.
- 24. scanf 함수에서 배열을 전달할 때 예외가 발생했습니다.
- 25. 배열을 전달할 때 약간의 문제가 있습니다.
- 26. 배열을 C에서 nasm으로 전달할 때 세그먼트 오류
- 27. 배열을 전달할 때 연결이 엉망인 이유는 무엇입니까?
- 28. MongoDB에서 Mongoose에서 문서 배열을 전달할 때 Atomicity가
- 29. 론적 오류 쿼리에 배열을 전달할 때
- 30. 2D 배열 요소의 크기를 정의하는 변수 전달
당신이 말하는 언어는 무엇입니까? –
[2D 배열을 매개 변수로 전달할 때 왜 열 크기를 지정해야합니까?] (http://stackoverflow.com/questions/12813494/why-do-we-need-to-specify-the -column-size-passing-a-2d-array-as-a-parameter) – melpomene
나는 C에 대해 이야기하고있다. – nathan