memset(next, -1, sizeof(next)); 这是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/04 08:27:49
int next[maxn];
memset(next, -1, sizeof(next));
这是什么意思
是清零吗?
清零不是
memset(next, 0, sizeof(next));吗

memset(next, 0, sizeof(next));
这是把内存全部设置为0。

memset(next, -1, sizeof(next));
这市把内存全部设置为1。
因为-1就是ffff。

至于为什么设置为1那就要联系上下文了。

根据上下文判断,反正是非法值

如果你是64位机,则‘-1’= 2^64-1,就是全1了。
memset(next, -1, sizeof(next)); 就是将这个地址的内容都写‘1’
至于用途么,我能想到有一种情况,对于一般的flash而言,写‘1’表示擦除flash

-1换在二进制代码就是1111111111111111(16个1)
因此memset(next, -1, sizeof(next)); 就是将数组next[maxn]全部填入1。