memset函数给int初始化
请问memset可以给int型变量和int数组赋值么?例如:inta;intb[10];memset(a,0,sizeof(a));memset(b,0,sizeof(b...
请问memset可以给int型变量和int数组赋值么?例如:
int a;
int b[10];
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
?是不是int型变量使用a=0赋值就行了?谢谢!
另外如果一个int c[10];数组做了定义,但后面直接使用c[0]=1; c[1]=2; ...进行赋值了,并没有使用c[10]={0}或是用memset设置初始值,这样有问题么?谢谢! 展开
int a;
int b[10];
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
?是不是int型变量使用a=0赋值就行了?谢谢!
另外如果一个int c[10];数组做了定义,但后面直接使用c[0]=1; c[1]=2; ...进行赋值了,并没有使用c[10]={0}或是用memset设置初始值,这样有问题么?谢谢! 展开
2个回答
展开全部
解答:
memset 要慎用。
对于int型数组,我们可以赋0、-1,其他的值赋到数组里后就不再是原数。
(这一点没有办法讲清楚)
对于bool型数组,可以赋true或false,两者皆不会发生错误。
char数组是通用的。
补充:
不会有问题。
c[10]={0};这种格式最好不用。
虽然一开始定义的数组内部都是随机数,但是不影响后面的赋值,你可以放心的赋值。但要注意的是,在main函数内部(或其他函数)定义的int、bool、char等类型的数组是动态数组,所以如果直接使用,是不可以的(具体情况具体对待),memset此时起到了很大的作用。
我本人喜欢开静态的(无需初始化,在函数外部定义),int型都是0,char都是‘\0’,至于bool数组,最好用memset赋(我没试过。。。)。
最好还是用静态数组,这样你调试查看数组的时候不会出现地址,而查看不了数据。静态数组真的比较好!
memset 要慎用。
对于int型数组,我们可以赋0、-1,其他的值赋到数组里后就不再是原数。
(这一点没有办法讲清楚)
对于bool型数组,可以赋true或false,两者皆不会发生错误。
char数组是通用的。
补充:
不会有问题。
c[10]={0};这种格式最好不用。
虽然一开始定义的数组内部都是随机数,但是不影响后面的赋值,你可以放心的赋值。但要注意的是,在main函数内部(或其他函数)定义的int、bool、char等类型的数组是动态数组,所以如果直接使用,是不可以的(具体情况具体对待),memset此时起到了很大的作用。
我本人喜欢开静态的(无需初始化,在函数外部定义),int型都是0,char都是‘\0’,至于bool数组,最好用memset赋(我没试过。。。)。
最好还是用静态数组,这样你调试查看数组的时候不会出现地址,而查看不了数据。静态数组真的比较好!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询