memset语法:

void *memset(void *s, int c, size_t n);

犹豫第三个参数为0会不会报错,测试不会。

代码:

#include"stdio.h"
#include"stdlib.h"  // memset memcpy


int  main()
{
    int sig[100] = { 0 };
    int sig_len = 100; int fir_len = 2;
    int* sig_buf = (int*)malloc((sig_len + fir_len - 1) * sizeof(int));
    if (sig_buf == NULL) {//判空
        perror("sig_buf malloc");//打印错误信息
        return 1;
    }

    memset(sig_buf, 0, (fir_len / 2) * sizeof(int));
    memcpy(sig_buf+fir_len / 2, sig, sig_len * sizeof(int));
    memset(sig_buf+fir_len / 2 + sig_len, 0, (fir_len / 2 - 1) * sizeof(int));

    return 0;
}

11-08 23:43