回覆列表
-
1 # 使用者2382157839074
-
2 # lehoon
c++給你這麼大的自由度了, 可以自己封裝下safe, 其實大公司都有對c++深度的封裝, 裡面都做了一些安全操作隔離。
rust因為是新出的語言,主打的是語言層面的安全,解決了c/c++存在的記憶體安全問題, 但是這樣帶來的問題就是有些操作會受到侷限,因此提供了unsafe的一系列集合。 該部分由程式設計師保證程式的準確性。
c/c++本身就像是在刀尖上的舞蹈家,不需要再額外提供safe的語義了,只能透過c++提供的智慧指標去保證指標的有效管理。
-
3 # 逍遙笙笙
C++想讓它safe就safe,想不讓它unsafe就unsafe,取決於使用者。C/C++這兩個這麼好用的程式語言,寫起來那麼自由,搞不懂為什麼噴子這麼多。
1.地址安全性問題:
當沒有賦初值時,可能引起錯誤。
當進行指標的算術運算時,可能引起錯誤,因此算術運算要慎用。
2.型別安全性問題:
reinterpret_cast<型別>(指標);這種方式的顯示轉換常用在底層。
void型別轉換為其他型別時一定要顯示型別轉換,其他型別轉換為void型別時可以隱含轉換。
3.堆物件的管理:
堆物件建立後,使用完之後一定要進行刪除。
以上就是我對於指標安全問題的一些認識。