메신저가 C에 새로 추가되었으므로 "할당"은 여기에서 사용할 올바른 단어가 아닐 수 있습니다.포인터에 2 차원 배열의 첫 번째 포인터를 할당합니다.
int의 포인터에 대한 포인터를 반환하는 this와 같은 함수가 있다고 가정 해보십시오. main() 함수에서
int **foo(){} //I wouldn't care much what this function does
내가이
int playground[10][10];
playground=foo();
같은 배열을 정의하지만 컴파일러는이 오류의 나에게 경고 : 배열 유형 놀이터 = foo에와 표현에
할당();
여기 실제로 잘못된 것은 무엇입니까? 내가 아는 한, 놀이터은 2 차원 배열이므로 int의 포인터를 가리키는 포인터가 될 것이다. 정확히 어떤 함수 foo()이 반환한다.
누군가 설명 할 수 있습니까? 많은 감사합니다!
단지 놀이터를 int ** 놀이터로 정의하십시오. 그러나 foo() 안에서 2 차원 배열을위한 공간을 할당해야 할 수도 있습니다. – Shiping
어이, 나는 기억 문제를 돌봐 줬지만 여전히 왜 내 방식이 제대로 작동하지 않는지 궁금해했다. 왜냐하면 내가 아는 한, "놀이터"를 쓸 때 실제로 배열의 첫 번째 요소에 대한 포인터를 의미하기 때문이다. 예제에서 작동합니까? –
놀이터 [10] [10]은 2 차원 배열에 대한 포인터가 아닌 2 차원 배열이지만 foo()는 2 차원 배열에 대한 포인터를 반환합니다. – Shiping