gimpo:
Just one drawback: storing an array of pointers forces you to store the length of the text somewhere/somehow. So you'r going to use 2 bytes per text-descriptions. In my case (60 rows) you need 120 bytes extra.
For the pointer, yes. For the length, no.
You can store length in a byte (unless the message is longer than 255).
2)
A c-string is nul terminated so you can use strlen_P. Or read byte by byte till you see the '\0' as you are considering; that's one byte per string extra and equal to a byte for the length.
gimpo:
A better approach is to use a special char as separator and loop over the mono-dimensional array until you reach the right text message.
(But I still have to check if this will not slow down too muchthe printing ops on a TFT display...)
If you need the last string, it will indeed be slower than when trying to find the first string. And it will still cost you 60 bytes extra.