How to use unsigned char arrays with external SRAM?

I am trying to extend the program memory

Sorry, not possible on basic AVRs.
On the other hand, if you're trying to provide an extension to data storage, that's doable indirectly, though you need to consider where the data comes from after power up.
Maybe SD?