關於sprintf s的使用問題

2021-07-04 16:15:51 字數 546 閱讀 5282

在開發乙個專案過程中,由於使用了最新版的開發環境,因此sprintf函式預設被開發環境禁止,出於養成好習慣的心思,我開始使用了sprintf_s函式,但這個函式著實坑了我一把,見下面**:

dword mcoluncunt = 500;

lpbyte mconfiginfolist = (lpbyte)zalloc(mcoluncunt*200);

cstring mtemp = "test for world";

sprintf_s((char*)mconfiginfolist,mcoluncunt * 200,"%s",mtemp);

#include int main( void )

第二個引數的解釋如下:

sizeofbuffer

maximum number of characters to store.

終於豁然開朗,為啥在我的程式中老是出現堆崩潰,記憶體寫越界之類的錯誤了,原來第二個引數處是應該寫明當下最大可用空間,哎,果斷修改之。。。

linux下sprintf s函式的替代

windows平台下執行緒安全的格式化字串函式sprint s並非標準c函式,因此linux下無法使用,但可以使用snprintf函式代替。函式原型 int snprintf char dest,size t n,const char fmt,函式說明 最多從源串中拷貝n 1個字元到目標串中,然後再...

C 中sprintf s與sprintf的不同

今天在程式編譯時遇到乙個warning,convertmnist convertmnist mnist.cpp 72 warning c4996 sprintf this function or variable may be unsafe.consider using sprintf s inst...

關於junit的使用問題

第一次使用junit的時候出現錯誤 error statuslogger log4j2 could not find a logging implementation.please add log4j core to the classpath.using logger to log to the ...