Large array of strings

Code with small array of strings does work as expected. It outputs "OK 00000008".

const char * iKey = {"00000000","00000008","00000070"};
void setup() {
Serial.begin(9600);
Serial.print("OK ");
Serial.print(iKey[1]);
}
void loop() {
}

Code with large array of strings does not work as expected. It outputs "2300078600".
I suspect my array is being overwritten, but I can't figure out a solution.

const char * iKey = {"00000000","00000008","00000070","00000078","00000600","00000608","00000670","00000678","00005000","00005008","00005070","00005078","00005600","00005608","00005670","00005678","00040000","00040008","00040070","00040078","00040600","00040608","00040670","00040678","00045000","00045008","00045070","00045078","00045600","00045608","00045670","00045678","00300000","00300008","00300070","00300078","00300600","00300608","00300670","00300678","00305000","00305008","00305070","00305078","00305600","00305608","00305670","00305678","00340000","00340008","00340070","00340078","00340600","00340608","00340670","00340678","00345000","00345008","00345070","00345078","00345600","00345608","00345670","00345678","02000000","02000008","02000070","02000078","02000600","02000608","02000670","02000678","02005000","02005008","02005070","02005078","02005600","02005608","02005670","02005678","02040000","02040008","02040070","02040078","02040600","02040608","02040670","02040678","02045000","02045008","02045070","02045078","02045600","02045608","02045670","02045678","02300000","02300008","02300070","02300078","02300600","02300608","02300670","02300678","02305000","02305008","02305070","02305078","02305600","02305608","02305670","02305678","02340000","02340008","02340070","02340078","02340600","02340608","02340670","02340678","02345000","02345008","02345070","02345078","02345600","02345608","02345670","02345678","10000000","10000008","10000070","10000078","10000600","10000608","10000670","10000678","10005000","10005008","10005070","10005078","10005600","10005608","10005670","10005678","10040000","10040008","10040070","10040078","10040600","10040608","10040670","10040678","10045000","10045008","10045070","10045078","10045600","10045608","10045670","10045678","10300000","10300008","10300070","10300078","10300600","10300608","10300670","10300678","10305000","10305008","10305070","10305078","10305600","10305608","10305670","10305678","10340000","10340008","10340070","10340078","10340600","10340608","10340670","10340678","10345000","10345008","10345070","10345078","10345600","10345608","10345670","10345678","12000000","12000008","12000070","12000078","12000600","12000608","12000670","12000678","12005000","12005008","12005070","12005078","12005600","12005608","12005670","12005678","12040000","12040008","12040070","12040078","12040600","12040608","12040670","12040678","12045000","12045008","12045070","12045078","12045600","12045608","12045670","12045678","12300000","12300008","12300070","12300078","12300600","12300608","12300670","12300678","12305000","12305008","12305070","12305078","12305600","12305608","12305670","12305678","12340000","12340008","12340070","12340078","12340600","12340608","12340670","12340678","12345000","12345008","12345070","12345078","12345600","12345608","12345670","12345678"};
void setup() {
Serial.begin(9600);
Serial.print("OK ");
Serial.print(iKey[1]);
}
void loop() {
}

I got bored scrolling, so I can't tell how many strings you have, but it seems likely that you've used all your RAM. Take a look at progmem and store your strings in flash memory instead.

yep:

Program: 4650 bytes (14.2% Full)
(.text + .data + .bootloader)

Data: 3399 bytes (166.0% Full)
(.data + .bss + .noinit)

You can simplify your code, first instead of an array of string you could use an array of numbers, that you can then convert as a string if/when needed. Second, there is a recognizable pattern, the next number is always previous number + some value, can't you find a way to make it so you don't even need an array, or at least, not an array that is so big?

Apologies for slightly off topic, but how did nicoverduin get those program stats:

Program: 4650 bytes (14.2% Full)
(.text + .data + .bootloader)

Data: 3399 bytes (166.0% Full)
(.data + .bss + .noinit)

I'm after just the same stats, but dont know how to get them...

Cheers,
Terry

@Terrry:
http://antanas.veiverys.com/arduino-ram-usage-analysis/

Edit: Also, you can use the following utility which is installed w/ Arduino:

 avr-size -C --mcu=atmega328p foo.elf
AVR Memory Usage
----------------
Device: atmega328p

Program:    2404 bytes (7.3% Full)
(.text + .data + .bootloader)

Data:        192 bytes (9.4% Full)
(.data + .bss + .noinit)

Ray

Thank you all. Problem was solved using progmem as suggested.