今天用mfc的記憶體對映,發現拷貝出現了問題,減少寫入資料,輸出顯示資料會亂碼。。。現問題解決記錄分享下。。。。
errno_t strcpy_s(char *strdestination,size_t numberofelements,const char *strsource );
各引數的意思如下:
strdestination:目標字串緩衝區的位置
numberofelements:目標字串緩衝區的大小(注意,是目標)
strsource :終止的源字串緩衝區
strcpy(char *strdestination,const char *strsource );引數少乙個,但是沒有strcpy_s,安全。。
由於我寫的**裡目標字串緩衝區的大小不固定,我獲取的是源字串大小2倍再加1,測試通過,這樣就可以實現不固定長度的拷貝。例項如下:
void ccsharememdlg::onbnclickedwrite()
void ccsharememdlg::onbnclickedread()
strcpy s與strcpy的比較
strcpy s和strcpy 函式的功能幾乎是一樣的。strcpy函式,就象gets函式一樣,它沒有方法來保證有效的緩衝區尺寸,所以它只能假定緩衝足夠大來容納要拷貝的字串。在程式執行時,這將導致不可預料的行為。用strcpy s就 可以避免這些不可預料的行為。這個函式用兩個引數 三個引數都可以,只...
strcpy s與strcpy的比較
strcpy s和strcpy 函式的功能幾乎是一樣的。strcpy函式,就象gets函式一樣,它沒有方法來保證有效的緩衝區尺寸,所以它只能假定緩衝足夠大來容納要拷貝的字串。在程式執行時,這將導致不可預料的行為。用strcpy s就 可以避免這些不可預料的行為。這個函式用兩個引數 三個引數都可以,只...
strcpy s與strcpy的區別
strcpy s和strcpy 函式的功能幾乎是一樣的。strcpy函式,就象gets函式一樣,它沒有方法來保證有效的緩衝區尺寸,所以它只能假定緩衝足夠大來容納要拷貝的字串。在程式執行時,這將導致不可預料的行為。用strcpy s就 可以避免這些不可預料的行為。這個函式用兩個引數 三個引數都可以,只...