memset 将 -1 放入我的数组中,而不是我指定的值,这是怎么回事?
Posted
技术标签:
【中文标题】memset 将 -1 放入我的数组中,而不是我指定的值,这是怎么回事?【英文标题】:memset is placing -1 into my array instead of the value I specified, what is going on? 【发布时间】:2012-04-22 22:38:51 【问题描述】: int * best = new int[numNodes];
memset(best,numeric_limits<int>::max()/2,numNodes*sizeof(int));
int test = numeric_limits<int>::max()/2;
打印出数组给了我一个全 -1 的数组。 打印出 int 'test' 给了我正确的值 '1073741823'
我包含'cstring' 以使用memset。 这是我正在关注的文档: http://www.cplusplus.com/reference/clibrary/cstring/memset/
为什么我会得到这个结果?我敢肯定这可能很明显,我只是没看到。
【问题讨论】:
【参考方案1】:memset 用 unsigned char 填充内存:
void *memset(void *DST, int C, size_t LENGTH);
This function converts the argument C into an unsigned char and fills the
first LENGTH characters of the array pointed to by DST to the value.
【讨论】:
以上是关于memset 将 -1 放入我的数组中,而不是我指定的值,这是怎么回事?的主要内容,如果未能解决你的问题,请参考以下文章