데이터 구조에 전역 포인터를 저장하고 데이터 구조에서 데이터 포인터를 가져 와서 반환하려고하는 메서드가 있습니다. 반환 할 수 있기를 바랍니다. 그들은 괜찮지 만 컴파일러는 나를 허용하지 않는다는 것을 알고 있습니다. 데이터 구조에서 가져온 것이기 때문에 그들은 로컬 일뿐입니다. 그러나 실제로는 그것들을 외부에서 가져 왔습니다.로컬 변수의 주소를 반환하고 싶습니다
미리 감사드립니다.
데이터 구조에 전역 포인터를 저장하고 데이터 구조에서 데이터 포인터를 가져 와서 반환하려고하는 메서드가 있습니다. 반환 할 수 있기를 바랍니다. 그들은 괜찮지 만 컴파일러는 나를 허용하지 않는다는 것을 알고 있습니다. 데이터 구조에서 가져온 것이기 때문에 그들은 로컬 일뿐입니다. 그러나 실제로는 그것들을 외부에서 가져 왔습니다.로컬 변수의 주소를 반환하고 싶습니다
미리 감사드립니다.
아니요; 컴파일러는 당신보다 잘 알고 있습니다. static
이 아닌 로컬 변수의 주소를 안전하게 반환 할 수 없습니다. 전역 변수의 주소를 함수에서 포인터로 반환 할 수는 있지만 그렇게하려는 것은 아닙니다. 그리고 그렇게한다면, 스레딩에 대한 결과를 알아야합니다 (변수 값이 변경되면 스레드 된 코드의 결과는 무시할 수 없으며 읽기 전용으로 변경 불가능한 변경되지 않은 값에 액세스하는 경우 문제가되지 않습니다).
귀하의 컴파일러를 듣고; 그것은 너 자신으로부터 너를 보호하려고 노력하고있다. C++에 대해 더 많이 알고 있습니다.
컴파일러가 잘못되었음을 알리기 위해 코드를 표시해야하지만 표시되는 내용이 유효하지는 않습니다.
감사합니다! 변수를 정적으로 만드는 것에 대해 생각해 보겠습니다. – Range