Is it possible to start an array at an index not zero...I.E. you have an array a[35], of 35 elements, now I want to index at say starting 100, so the numbers would be a[100], a[
Is it possible to start an array at an index not zero...I.E. you have an array a[35], of 35 elements, now I want to index at say starting 100, so the numbers would be a[100], a[101], ... a[134], is that possible?
No, you cannot do this in C. Arrays always start at zero. In C++, you could write your own class, say OffsetArray
and overload the []
operator to access the underlying array while subtracting an offset from the index.
I'm attempting to generate a "memory map" for a board and I'll have one array called SRAM[10000] and another called BRAM[5000] for example, but in the "memory" visiblity they're contiguous, I.E. BRAM starts right after SRAM, so therefore if I try to point to memory location 11000 I would read it see that it's over 10000 then pass it to bram.
You could try something like this:
char memory[150000];
char *sram = &memory[0];
char *bram = &memory[100000];
Now, when you access sram[110000]
you'll be accessing something that's "in bram
"