[ACCEPTED]-Convert a pointer to an array in C++-memory-mapping
You do not need to. You can index a pointer 1 as if it was an array:
char* p = (char*)CreateFileMapping(...); p = 'x'; ...
In C/C++, pointers and arrays are not the 7 same thing.
But in your case, for your purposes 6 they are.
You have a pointer.
You can give 5 it a subscript.
E.g. a char* pointer points 4 to the start of "hello"
pointer is the 3 first character 'h'
pointer is the second 2 character 'e'
So just treat it as you are 1 thinking about an array.
"In C/C++, pointers and arrays are not the 4 same thing." is true, but, the variable 3 name for the array is the same as a pointer 2 const (this is from my old Coriolis C++ Black 1 Book as I recall). To wit:
char carray; char caarray2; char* const cpc = carray; //can change contents pointed to, but not where it points /* cpc = carray2; //NO!! compile error carray = carray2; //NO!! compile error - same issue, different error message */ cpc = 'a'; //OK of course, why not.
Hope this helps.
But how's pointer different from array? What's 2 wrong with
char *Array = (char*)CreateFileMapping(...);
You can treat the
Array more or less 1 like you would treat an array from now on.
You can use a C-style cast:
char *p = (char*)CreateFileMapping(...); p = 'x';
Or the preferred 1 reinterpret cast:
char *p std::reinterpret_cast<char*>(CreateFileMapping(...)); p = 'x';
More Related questions