- 采药
- 2013-12-26 18:33:15 @
memset(f,0,sizeof(f));是错的
第二次改为则对了
for (i = 0;i < T;i++)
f[0][i] = f[1][i] = 0;
12 条评论
-
Alextokc LV 6 @ 2016-12-19 13:55:03
开在全局变量表示同情。。。
-
2014-08-13 11:16:03@
写memset和sizeof时加上头文件就行,string.h和stdio.h
-
2014-01-03 14:59:29@
fp党表示同情
-
2014-01-02 04:15:16@
memset 二维数组是没有问题的, 设为0 或者-1 是没有问题的 如果是 1 或 INT_MAX INT_MIN 会有问题, 因为memset 是byte 8 位为单位设置的。 每个bit 设置为 全0 这样如果是int 就是 0000 全1 如果是int 数组 取出来就是 ffff的时候 是没有问题的, 其他情况如果设置数字过大会有高位byte 地位byte重叠的问题 , 设置为1 会出现 1111的情况.
-
2014-01-01 10:42:38@
这么坑爹么。
看来for保险。。?
我一直memset没有问题唉。。 -
2014-01-01 01:51:56@
试了一下,貌似二维数组的memset这么写也没问题。如下。
###主要代码:
int f[n][n]={{1, 2, 3}, {3, 4, 5}, {4, 5, 6}};
memset(f, 0, sizeof(f));###输出:
Before memset:
f=
1 2 3
3 4 5
4 5 6sizeof(f)=36
After memset:
f=
0 0 0
0 0 0
0 0 0Press any key to continue . . .
###By the way
C:\Windows\system32>gcc --version
gcc (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc. -
2013-12-31 22:42:17@
不是应该 memset(f,sizeof(f),0)这样吗
-
2013-12-29 08:29:36@
自从有一次memset无效之后我一直都用for赋初始值
-
2013-12-28 18:40:17@
是的 二维不可以直接memset
-
2013-12-28 17:55:24@
不过……貌似我用memset时也遇到了些奇奇怪怪的问题……不知道怎么回事……不过几次超时太悲催了……
-
2013-12-28 16:40:17@
用了N年都没出过问题啊~ 话说代码没问题?
-
2013-12-26 21:17:44@
memset(f,0,sizeof(f));之后f里面是啥呢
是不是要memset(f,0,sizeof(f)*sizeof(f[0]));之类的
- 1