對於絕大多數編譯器來講,
char namekey[15]="";
與memset(namekey,0x0,sizeof(namekey));
或memset(namekey,'\0',sizeof(namekey));
這三個是一樣的。
但是有的編譯器,
char namekey[15]="";只將namekey[0]給賦值為'\0',其他成員還是隨機值,也就是未初始化的值
還有人用memset(namekey,0,sizeof(namekey)); 初始化記憶體塊。
這是肯定是錯誤的。因為數字0的ascii碼是48,'\0'的的ascii碼是0.
所以推薦使用下面的2種方式初始化字串記憶體塊。
memset(namekey,0x0,sizeof(namekey));
或memset(namekey,'\0',sizeof(namekey));
memset函式初始化
標頭檔案 incldue 靜態陣列 int num 10 memset num,0,sizeof num 初始化為 0 memset num,1 sizeof num 初始化為 1 memset num,0x3f sizeof num 初始化為無窮大 memset num,0x3f sizeof n...
memset 函式初始化
memset 函式標頭檔案及原型 include void memset void s,int c,unsigned long n 功能 對一段申請的記憶體進行初始化,mem即memory 記憶體 memset即給記憶體設定 初值 引數說明 將 指標變數 s所指向的記憶體單元中的前n個位元組用 整型...
memset 函式初始化問題
話說剛開始使用memset的時候一直以為memset是對每乙個int賦值的,心裡想有了memset還要for迴圈對陣列進行初始化幹嘛。但其實memset這個函式的作用是將數字以單個位元組逐個拷貝的方式放到指定的記憶體中去 memset dp,0,sizeof dp int型別的變數一般占用4個位元組...