题目
实现简易 memset 填充字节
思路
本题模拟 memset:把连续 n 个字节都设为同一值。 按字节写 *p++ = (unsigned char)val,共 n 次;只取 val 的低 8 位。
解题分析
memset 按字节写同一值,填充 int 数组会把每个字节都设为 val,通常用 0 清零。设非 0 _pattern 时 int 结果可能不是每个元素等于 val。
完整程序
import java.util.Arrays;
public class Main {
static void myMemset(int[] arr, int val) {
Arrays.fill(arr, val);
}
public static void main(String[] args) {
int[] a = {1, 2, 3, 4, 5};
myMemset(a, 0);
for (int i = 0; i < a.length; i++) {
if (i > 0) {
System.out.print(' ');
}
System.out.print(a[i]);
}
System.out.println();
}
}
运行示例
输出:
0 0 0 0 0