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;
}