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' が得られます

memset を使用するために「cstring」を含めています。私がフォローしているドキュメントは次のとおりです 。 http://www.cplusplus.com/reference/clibrary/cstring/memset/

この結果が得られるのはなぜですか? それは明らかなことかもしれませんが、私には見えません。

4

1 に答える 1

0

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