memset赋值无穷大
时间: 2023-10-16 09:22:34 浏览: 140
在 C/C++ 中,通常使用 `memset` 函数来进行内存清零或者初始化,它的原型如下:
```c++
void *memset(void *s, int c, size_t n);
```
其中,`s` 是要清零或初始化的内存地址,`c` 是要赋的值,`n` 是要清零或初始化的字节数。
如果要将内存中的值赋为无穷大,可以使用 `std::numeric_limits<float>::infinity()` 或 `std::numeric_limits<double>::infinity()` 来表示正无穷大,使用 `-std::numeric_limits<float>::infinity()` 或 `-std::numeric_limits<double>::infinity()` 来表示负无穷大。但是这种方法只适用于浮点数类型。
如果要将整型或字符型数组中的值赋为无穷大,可以使用以下代码:
```c++
#include <limits>
int arr[10];
memset(arr, std::numeric_limits<int>::max(), sizeof(arr));
```
这里使用了 `<limits>` 头文件中的 `std::numeric_limits<int>::max()` 函数来表示 `int` 类型的最大值,也可以使用 `std::numeric_limits<int>::min()` 函数来表示最小值。如果数组中有其他类型的元素,需要根据具体类型来选择相应的函数。另外需要注意的是,这种方法只能用于有符号整型,对于无符号整型需要使用其最大值来表示无穷大。
阅读全文