C 中乙個P0級的磁碟清空問題覆盤

2021-10-09 05:02:30 字數 949 閱讀 6764

乙個小夥伴開開心心寫了一段資料夾刪除**,不過在自測的時候出現了事故。

整個c盤檔案被一掃而空,不得不重灌系統,珍藏資料也難以找回。

先上原始碼。警告:此原始碼切勿執行

#include

std::wstring dirbackslashalign

(const std::wstring& strdir)

return strtemp;

}void

deletedirrecursively

(const std::wstring& dirname)

else

}while

(findnextfile

(hfind,

&fd));

findclose

(hfind)

; hfind = invalid_handle_value;

}//防止誤執行,此**做遮蔽

//::setfileattributes(dirname.c_str(), file_attribute_normal);

//::removedirectory(dirname.c_str());

}void

runtest()

問題出在**呢?一步步推斷看下。

知道了問題原因,就可以做修復了,做下入參有效性判斷。

**如下。

#include

"shlwapi.h"

#pragma comment(lib,"shlwapi.lib")

void

deletedirrecursively

(const std::wstring& dirname)

針對這次p0級別的問題修復,對函式入參做防禦性有效性判斷永遠都是對的。

c 記憶體分配中乙個有趣的小問題

toc 以下 測試環境 vs2019 問題的提出 執行這麼一段 看看會發生什麼 c int arr 5 int main 毫無疑問,會報錯,因為訪問越界了。再看看另一段 c int arr 5 int main 與上面的 相比幾乎沒什麼差別,僅僅把arr的定義和初始化搬到了函式外面,但執行程式卻沒有...

C語言中乙個strcmp和 的比較問題

在問答上看到乙個問題,本著賺金幣的態度就回答了一下。話說遇到我這樣的小白會的問題的機率真心不大,趕緊答乙個。c 中strcmp和 的比較問題 c strcmp char str1 hello char str2 hello if str1 hello printf ok1 n if str2 hel...

C 中乙個關於複製建構函式和指標的問題

copy建構函式是顯式地去處理乙個物件初始化另乙個物件的問題,如果類含有乙個指標的話,那麼處理起來主要分為兩種情況。a.指標在類的構造或者初始化時指向動態分配的記憶體,並在物件析構時對該指標進行delete操作,釋放記憶體資源。這種情況下,對指標的操作是萬萬不能簡單對指標位址進行賦值操作的。應該是動...