此題為字串的複製函式,自己書寫測試**和strcpy函式如下,測試環境(ubuntu):
#include
void
strcpy(char *strdest, const
char *strsrc);
int main()
void
strcpy(char *strdest, const
char *strsrc)
測試結果報錯:發生段錯誤,通過addr2line
定位到while ((*strdest++ = *strsrc++) != '\0');
這一行**。
開始一直以為是這一行**書寫錯誤,將其分步改寫,**如下:
do
while (*strsrc != '\0');
然後除錯,還是發生了段錯誤,繼續使用addr2line
定位到*strdest = *strsrc;
這一行**。然後將**copy到vs2015上調式,列印錯誤資訊:unhandled exception thrown: write access violation
,即寫訪問衝突,因此懷疑是賦值時出現異常。仔細檢視測試**,發現定義的str1
為字串字面量,其記憶體位址儲存在唯讀儲存區,不能作為左值使用。修改char str1[10] = "";
,然後測試後通過。具體**如下:
#include
void
strcpy(char *strdest, const
char *strsrc);
int main()
void
strcpy(char *strdest, const
char *strsrc)
檢視示例**,完善strcpy
函式:
#include
#include
char* strcpy(char *strdest, const
char *strsrc);
int main()
char* strcpy(char *strdest, const
char *strsrc)
mysql完整版 MYSQL安裝(完整版)
一 完全解除安裝mysql yum remove mysql mysql server mysql libs compat mysql51 rm rf var lib mysql rm etc my.cnf 檢視是否還有mysql軟體 rpm qa grep mysql 如果存在的話,繼續刪除即可。...
php完整版,ThinkPHP5 0完整版
thinkphp5.0版本是乙個顛覆和重構版本,官方團隊歷時十月,傾注了大量的時間和精力,採用全新的架構思想,引入了更多的php新特性,優化了核心,減少了依賴,實現了真正的惰性載入,支援composer,並針對api開發做了大量的優化,包括路由 日誌 異常 模型 資料庫 模板引擎和驗證等模組都已經重...
JS完整版原型鏈剖析之完整版
爭對上兩篇遺留的問題建構函式和object建構函式 proto 屬性執行的問題,我們可以分析出最終他們的原型鏈 即物件原型的物件原型 最後肯定會執行null不然就會一直指向下去 建構函式和object建構函式指向的同乙個原型物件 function建構函式的原型物件 而這個原型物件的 proto 屬性...