2
    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/

为什么我会得到这个结果?我敢肯定这可能是显而易见的,我只是没有看到。

4

1 回答 1

0

memset 用无符号字符填充内存:

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.
于 2012-04-22T22:41:41.110 回答