memset
sets bytes, so you get double
-values where each byte is -1
.
Instead in C++ use std::vector
, then write
vector<double> dp( 505, -1.0 );
It's that simple.
If dp
is a global vector and you need to set it to -1
a number of times, then you can simply do this:
dp = vector<double>( dp.size(), -1.0 );
However, it's generally not a good idea to use non-const
global variables.
Alternatively one can use std::fill
, or just a loop, or just about any technique that still treat the double
values as double
values. But std::vector
is preferable also for many other reasons than greatly simplifying the fill-it task. In particular a std::vector
can be resized, it takes care of copying, and it automates the memory management, doing that part correctly and transparent to you.