[英]How to memset an array of bools?
void *memset(void *dest, int c, size_t count)
第三個參數是數組中的字符數或字節數。 你將如何 memset 布爾數組,比如 bool bArray[11]?
MSDN 說:“安全說明 - 確保目標緩沖區至少有足夠的空間容納 count 個字符。”
std::fill()
應盡可能使用memset()
。
std::fill(std::begin(bArray), std::end(bArray), value);
如果bArray
是指針,則應使用以下內容:
std::fill(bArray, bArray + arraySize, value);
memset(buffer_start, value, sizeof(bool) * number_of_bools);
//Array declaration
bool arr[10];
//To initialize all the elements to true
memset(arr,1,sizeof(arr));
同樣,您可以通過將 1 替換為 0 來將所有元素初始化為 false。
memset 以字節的倍數設置內存。 因此,唯一的方法是向 bool 指針添加填充,使其長度為 8 的倍數。然后執行 memset。 就我個人而言,我更喜歡除了放置冗余填充之外還有其他選擇。 但迄今為止我還沒有找到任何替代解決方案。
就像這個例子:
bool primes[MAX];
memset(primes,true,sizeof(bool) * MAX);
使用memset
將 11 個 bool 元素的數組設置為 true :
const int N = 11;
bool arr[N];
memset(arr, 1, sizeof(bool) * N);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.