爲什麼memset不能將數組元素初始化爲1?

今天筆者發現了一個很嚴肅的問題

memset函數不能給數組賦值爲1
查閱資料後發現,memset函數是逐個字節填充,計算機中爲補碼,memset函數只能填充爲全0或者全1。

說明,memset函數只能給數組賦值全0,或者全-1.

#include<string.h>
int main(){
	int a[101];
	memset(a,1,sizeof(a));
	for(int i=1;i<=100;i++)
		cout<<a[i]<<endl;
	return 0;
}

筆者發現打印出來的不是全1,而是不爲0的正整數(16843009)!

在這裏插入圖片描述

具體詳解見博客:
https://www.cnblogs.com/blogofwu/p/4140563.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章