题目

实现简易 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