关于如何用memset快速初始化数组
大佬们 memset可以将数组全部初始化为指定的数字吗如果可以的话要怎么用呢我试了一下这个发现有问题#include "stdio.h"
#include "string.h"
int a = {0};
int main(void)
{
memset(a, 1, sizeof(a));
printf("%d\n", a);
return 0;
} #include "string.h" 你这引用的是string 这不是明摆了memset针对的是string
memset作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。
没有函数支持除内存块的初始化。直接for即可。 改成无符字符数组#include "stdio.h"
#include "string.h"
int main(void)
{
int n = 10;
unsigned char arr; // 无符字符数组
memset(arr, 'a', n*sizeof(arr));
printf("%c", arr);
return 0;
} 如果要初始化数组为指定数值,可以自己写:#include <stdio.h>
void init(int *arr, size_t N, int elem){
for(int i = 0; i < N; i++){
arr = elem;
}
}
int main()
{
int arr = {1, 2, 3, 4, 5};
init(arr, 5, 13);
for(int i = 0; i < 5; i++)
printf("%d ", arr);
return 0;
}13 13 13 13 13
页:
[1]