如何使数组无效?

时间:2011-06-17 05:24:54

标签: c++ arrays

有一个数组:

char* arr[some_size] = {nullptr};

后来初始化它的一些元素是否有任何方法我可以以其他方式重置此数组,而不是迭代其元素并将它们设置为nullptr? 我想避免这个:

for(unsigned i = 0; i < some_size;++i)
{
arr[i] = nullptr;
}

3 个答案:

答案 0 :(得分:6)

你可以自己迭代它,或者你可以调用一个迭代它的函数:

#include <algorithm>

// choose either one:
std::fill_n(arr, some_size, nullptr);
std::fill(arr, arr + some_size, nullptr);

必须以这种或那种方式进行迭代。

答案 1 :(得分:3)

Rob的回答适用于C ++。如果你直接做C,请查看memset()或bzero()。

char *arr[size] = { NULL };
...
memset(arr, 0, sizeof(char *) * size);
/* or */
bzero(arr, sizeof(char *) * size);

memset(标准C)通常优先于bzero(BSD-ism)。

答案 2 :(得分:0)

我认为Cuthbert的答案很好。 还有ZeroMemory WinAPI功能(适用于Windows)。