전달 동적 배열은 우리가이 선언을 가정 그것?2-D 정적 및
2-D 정적 및
답변
물론, 단지 void*
:
를 사용없이, 귀하의 질문에 대답 할 수 있습니다. 다차원 배열은 포인터에 대한 포인터와 같지 않습니다. 그 이유는 인덱싱 체계입니다. int b [2][2]
은 4 개의 정수로 구성된 연속적인 메모리 블록입니다. 색인 생성은 다음과 같습니다.
b[i][j] == *(b + 2*i + j)
두 번째 차원은 유형 정의의 일부입니다! 컴파일러는 배열의 메모리 레이아웃으로 인해 역 참조가 하나만 필요하다는 것을 알고 있습니다.
는 한편, int** a
의 색인은 다음과 같이 수행됩니다
a[i][j] == *(*(a+i)+j)
우리는 정말로 위험한 오해의 소지가있는 첫 번째 라인이 정말로 필요합니까? –
@ LightnessRacesinOrbit, 오해의 소지가 있습니까? 나는 당신이 모든 유형 정보를 포기하고 싶지 않다면 그것을 가로 질러 요점을 얻는다라고 생각한다, 당신은 OP가 물었던 것을 할 수 없다. – StoryTeller
- 1. Difference 동적 정적 2D 배열 C++
- 2. 정적 2D 문자열 배열을 HashMap으로 변환
- 3. memcopy 및 2d 배열
- 4. JSON 및 2D 배열
- 5. 비 정적 및 정적 데이터 및 함수
- 6. 정적 클래스 및 정적 메서드
- 7. 정적 및 비 정적 메서드
- 8. DirectX의 3D 및 2D 디스플레이
- 9. 2D 게임에서 점프 및 서기
- 10. C++ 스택 및 2D 배열
- 11. 안드로이드 2D 및 3D 동기화
- 12. Android OpenGL ES 및 2D
- 13. SVG로 2D 렌더링 및 확대
- 14. C++ 2D 벡터 및 연산
- 15. 2D
- 16. 비 정적 대 정적 함수 및 변수
- 17. Java의 정적 및 비 정적 초기화 블록
- 18. 정적 및 동적으로 정적 컨트롤 편집
- 19. 정적 멤버 및 정적 전역 메모리
- 20. 정적 및 비 정적 메서드를 통해 정적 속성에 액세스합니까?
- 21. 정적 및 const 멤버, 정적 클래스 및 병목 현상
- 22. 2D 배열의 2D 배열 CUDA
- 23. 정적 라이브러리 및 JNI
- 24. 정적 라이브러리 및 국제화
- 25. 정적 및 동적 바인딩
- 26. $ _GET 및 PHP의 정적
- 27. luabind 및 정적 필드
- 28. 정적 멤버 및 상속
- 29. JNI 및 정적 인터페이스
- 30. 정적 필드 및 메소드
두 변환 생성자가있는 타입이 걸릴 수 : P 가지 점 유적,하지만 그 함수를 오버로드 아닙니다. – chris
다차원 배열 참조를 위해 컴파일러에서 생성 한 코드를 이해하면 직접 대답 할 수 있다고 생각합니다. b [i] [j]의 경우 컴파일러는 * (b + i * y + j)를 생성합니다 (또는 * (b + j * x + i) 일 수도 있음). 함수 f()는 b [] []의 크기를 알 수 없으므로 c [i] [j]에 대한 참조를 제대로 처리 할 수 없습니다. –
이 두 유형은 호환되지 않으므로 호환되지 않습니다. –