可能重复:
是否有memset()接受大于char的整数?
正如在memset的声明中可以看到的那样:
void * memset ( void * ptr, int value, size_t num );
Run Code Online (Sandbox Code Playgroud)
有没有办法使用这个memset函数(或STL库中包含的其他函数),以便您可以将内存设置为long long类型值?
我用它来初始化一个具有较大值的long long数组.
我必须说,我通过简单地迭代数组的每个值并将其设置为所需的值来"解决"这个问题.
memset只使用传入的值的一个字节并进行逐字节初始化.如果要初始化long long具有特定值的数组,只需使用std::fill或std::fill_n让您的库和编译器尽可能地优化它(部分循环展开等).
另一种规范的C++方法是使用vector并让它的构造函数为你工作:
std::vector<long long> foo(length_of_array, 12345678901234LL);