Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 2 months ago.
How to make a class member point to an array located in flash?
Hello, I'm creating a class for storing bitmaps which contains attributes such as width, height, as well as a pointer to an array for the pixel data. If a program using the class wants to, say, create an object and read it in from a file system, it will need to obviously use RAM, however, I'd also like the option to pre-define some read only bitmaps from arrays stored in flash. From what I have been reading using the const declaration will cause a pre-initialized array to be stored in flash, but the compiler won't allow me to initialize my class member pointer to point at that array. If I try to use const for the entire object instance, it still uses up RAM space as well. In the end I want pre-defined bitmaps to reside in flash, while newly created/loaded ones reside in RAM. Is this even possible?
1 Answer
8 years, 2 months ago.
A const declared array will indeed reside in flash. You will need a typecast to make that work with a regular pointer:
const char array[] = {0,1,2,3,4,5}; char *myarray; main { myarray = (char *) array; }