I moved my code to use std::vector
instead of char *mem = malloc(...)
but now I am facing a problem that I can only access the vector d
The standard way to access the vector data is to use
&data[0]
You can write that code perfectly legally. All you need to do is alter fill_data to take a std::vector<T>&
. Of course, if this is an external C API, then you don't have much choice in the matter.
Of course. The vector was designed for this purpose:
char * p = &(myVector[0]) ;
And now, p points to the first item in the vector, and you can access each item by playing with the pointer, as you would in C.