1. 程式人生 > >memset使用過程中遇到的錯誤

memset使用過程中遇到的錯誤


int a[10];
memset(a,1,sizeof(a))

這段程式碼並沒有將陣列a全部置為1;


int a[10];
memset(a,0,sizeof(a))    // 全部置為了0

int a[10];
memset(a,-1,sizeof(a))    // 全部置為了-1

這兩段程式碼經我驗證是沒有問題的

所以,問題來了,為什麼置為1就出錯了

經多次驗證好像就0,-1,能用,2 ,3,-2,-3,4,....都不能用來copy,驚嘍

補充一個:

int a[10];
memset(a, 1, 1);
memset((char *)a + 1, 0, 3);
cout<<a[0]<<endl;

a[0]=1

感覺memset不能瞎**亂用;

對於整型一維陣列,簡單的將陣列a初始化為0

1. int a[100]={0};
2. int a[100];
   memset(a,0,sizeof(a))
3. int a[100];
   for(int i=0;i<100;i++)
       a[i]=0;

for迴圈給陣列每個元素賦值是最直觀的