[英]Member function return a function
a* b::find() const
{
a* pointr = head;
return pointr;
}
這是我的代碼,但是Visual Studio在返回指針行中強調了指針嗎? 我的代碼有什么問題?
編輯:對不起的錯字
a* pointer = head;
return pointr;
您在函數范圍內沒有任何變量被聲明為pointr
,除非聲明,否則編譯器將如何知道?
pointr
和pointer
不相同,缺少e
。
假設這是一個錯字,
您的函數返回一個指針,但是在這種情況下它指向的指針很重要。 如果head
是本地變量或沒有動態內存分配的指針(指向本地對象),則您的指針pointer
指向的是本地對象,一旦函數返回該指針將被破壞,並且將成為懸空的指針。
記住規則:
您不應返回引用或指向函數本地變量的指針。
您返回了錯誤的變量
返回指針;
在您的代碼中。 在范圍內未定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.