是不是可以在整数数组上使用memset?我尝试了以下memset调用,并没有在int数组中获得正确的整数值.
int arr[5];
memset (arr, -1, sizeof(arr)/sizeof(int));
Run Code Online (Sandbox Code Playgroud)
我得到的Vaules是:
arr[0] = -1
arr[1] = 255
arr[2] = 0
arr[3] = 0
arr[4] = 0
Run Code Online (Sandbox Code Playgroud) 有没有人有办法初始化一个ints 数组(任何多字节类型真的很好),简单到一个非零和非-1值?我的意思是,有没有办法在单个班轮中执行此操作,而无需单独执行每个元素:
int arr[30] = {1, 1, 1, 1, ...}; // that works, but takes too long to type
int arr[30] = {1}; // nope, that gives 1, 0, 0, 0, ...
int arr[30];
memset(arr, 1, sizeof(arr)); // That doesn't work correctly for arrays with multi-byte
// types such as int
Run Code Online (Sandbox Code Playgroud)
仅供参考,memset()在静态数组上使用这种方式可以得到:
arr[0] = 0x01010101
arr[1] = 0x01010101
arr[2] = 0x01010101
Run Code Online (Sandbox Code Playgroud)
另一种选择:
for(count = 0; count < 30; count++)
arr[count] = 1; // Yup, that does …Run Code Online (Sandbox Code Playgroud)