Corrupted strings on LCD

Hi All.

I'm developing application using LCD Keypad (from DFRobot), including LiquidCrystal library. My projects includes some small hierachy of classes, responsible for displaying particular pages, something like: BasePage->SomePage... Problem i'm facing right now is that if i use in SomeClass array of strings (char* values[NUMBER] or String values[NUMBER]) displayed strings are corruped (overwritten by others strings) or completly unknown signs on display. Some overwiew for the code:

class BasePage
{
    String  line1;  // LCD line 1
    String  line2;  // LCD line 2
};

class SomePage : public BasePage
{
    String  values[NUMBER];
    // ...or...
    char*  values[NUMBER];
};

In SomeClass constructor there is code:

SomeClass::SomeClass()
{
    values[0] = "some lalala";
    values[1] = "some other lalala";
    line1 = values[0];
    line2 = values[1];
}

I've few such pages (derrived from BasePage), each one initiated line1 and line2, but whe i use array of strings in some derrived class there is corruption of line1 or line2 (or both). I've tried also global array (outside of class) and PROGMEM directive, the same result. Could you see any problem here? Could it be lack of RAM memory?

..there is a discussion held that string functionality might be buggy..
http://arduino.cc/forum/index.php/topic,116289.0.html
p.

If you are using char pointers, you need to make sure that you are allocating space for the string. Pointers are wonderful things, and, when properly allocated, equivalent to char arrays. When not properly allocated, though, they are rubbish, and will allow you to screw all kinds of stuff up.

What about using (?):

#define  SOME_STR  "Some string to display"

I've changed all my strings in program to such defines and each one is placed in global include file. I've removed usiage of String type (char* only). Page objects are initiated like this:

SomePage  somePage1( SOME_STR1, SOME_STR2 );
SomePage  somePage2( SOME_STR3, SOME_STR2 );

But problem still exists.

You need to post more of your code. What does the SomePage class definition now look like? What does the SomePage constructor do?

Problem solved for now, i've removed all calls related to String type and it helped, for char* strings everything is working. As one colleague said above, maybe this is really problem of String type.