C에서 참조에 의한 전달과 포인터에 의한 전달
참조에 의한 전달과 포인터에 의한 전달 시기를 결정하는 것은 C에서 혼란스러운 문제일 수 있습니다. 씨. 각 접근 방식의 장단점을 살펴보겠습니다.
참고로 전달
장점:
단점:
포인터로 전달
장점:
단점:
모범 사례
일반적인 경험 법칙 "할 수 있을 때 참조를 사용하고 필요할 때 포인터를 사용하십시오." 예를 들면 다음과 같습니다.
예
다음 코드 조각을 고려하세요.
int main() { map<string, shared_ptr<vector<string>>> adjacencyMap; vector<string>* myFriends = new vector<string>(); myFriends->push_back(string("a")); myFriends->push_back(string("v")); myFriends->push_back(string("g")); adjacencyMap["s"] = shared_ptr<vector<string>>(myFriends); return 0; }
이 예에서는 포인터를 사용하여 myFriends를 전달하는 것이 적절합니다. 새 벡터를 만든 다음 공유 포인터를 전달합니다. 그러나 메모리 누수를 방지하려면 myFriends를 명시적으로 삭제하는 것을 기억하는 것이 중요합니다.
위 내용은 C에서 언제 참조를 사용해야 하며 언제 포인터를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!