抛出错误Debug Assertion Failed!
出現這種情況很可能是使用了野指針,比如某個指針指向一個局部變量,而在該變量作用域外使用該指針引用了該對象。
Assertion 是斷言,用于假定某個條件肯定會滿足,在debug模式下,當該條件不滿足時則發生阻塞而彈出該對話框;在release下會忽略斷言。
我不知道具體原因,但是我找到了一種解決辦法:選擇Build→Clean,重新編譯就可以了。
expression:stream !=NULL
如果fopen()后返回的是NULL;就不能調用fclose()了;
用fopen()獲得的文件句柄不是NULL,那么就需要用fclose()來關閉它。如果是NULL則不需要
null就表示你打開文件失敗了,根本都沒有成功的訪問文件,也就不存在對數據有什么損壞的可能。不需要關閉。
?
在定義FILE * fp 之后,fopen的用法是:
fp?= fopen(filename,"w")。
而對于fopen_s來說,還得定義另外一個變量errno_t err,然后
err = fopen_s(&fp,filename,"w")。
返回值的話,對于fopen來說,打開文件成功的話返回文件指針(賦值給fp),打開失敗則返回NULL值;對于fopen_s來說,打開文件成功返回0,失敗返回非0。
在vs編程中,經常會有這樣的警告:warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use_CRT_SECURE_NO_WARNINGS. See online help for details.??是因為? fopen_s比fopen多了溢出檢測,更安全一些。
?
轉載于:https://www.cnblogs.com/baoxiaofei/p/4296192.html
總結
以上是生活随笔為你收集整理的抛出错误Debug Assertion Failed!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MogoH5+基于Hbuilder做io
- 下一篇: css中calc()方法的使用