As already suggested, function pointers are a particularly memory inefficient way to represent instructions/opcodes.
But on top of that, there is another issue with this representation: Your interpreter will very likely be dog slow, because you have to make a function call on each iteration, and it cannot be inlined, because it is dynamic.
And I suspect there are implications for the I-Cache that should probably be considered as well.
EDIT By "considered", I mean, measured, and then considered.