摘要
memset()一般是对字符型数组赋初值,如果非要对整型数组赋初值,只能赋值0.
原因是memset()是设置每一个“字节”的值。
问题
用memset将二维整型数组全部设置为最大整型时遇到的问题及解决办法
#define MAX 100000
const int MAXN = 5;
int len[MAXN][MAXN];
memset(len,MAX,sizeof(len));//失败,并不能让len数组所有的值是100000,而是-1600085856
memset(len,-1,sizeof(len))//成功,并且len所有的值都是-1;
memset(len,-2,sizeof(len))//失败
解释
sizeof(len) = 100
sizeof(len) != 25
memset是按字节赋值的。
memset是内存操作,作用是设置每一个“字节”的值。第一个参数是内存地址,第2个参数是设置的值(0x00 - 0xff),第3个参数是字节数。
除了将整型数组设置为0,否则用memset对非字符型数组赋初值是不可取的!
使用memset将二维数组全部设置为一个值
char array[][];
memset(array,'A',sizeof(array));
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。