return 语句不可返回指向“栈内存”的“指针”
生活随笔
收集整理的這篇文章主要介紹了
return 语句不可返回指向“栈内存”的“指针”
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
return 語(yǔ)句不可返回指向“棧內(nèi)存”的“指針”
因?yàn)樵搩?nèi)存在函數(shù)體結(jié)束時(shí)被自動(dòng)銷毀。例如:
char * Func(void)?
{?
char str[30];?
…?
return str;?
}?
str 屬于局部變量,位于棧內(nèi)存中,在Func 結(jié)束的時(shí)候被釋放,所以返回str 將導(dǎo)致錯(cuò)誤。
因?yàn)樵搩?nèi)存在函數(shù)體結(jié)束時(shí)被自動(dòng)銷毀。例如:
char * Func(void)?
{?
char str[30];?
…?
return str;?
}?
str 屬于局部變量,位于棧內(nèi)存中,在Func 結(jié)束的時(shí)候被釋放,所以返回str 將導(dǎo)致錯(cuò)誤。
總結(jié)
以上是生活随笔為你收集整理的return 语句不可返回指向“栈内存”的“指针”的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 常见的内存错误
- 下一篇: a[0]和a 的区别?