Member Avatar

The output I expected was:

alpha
beta

I used the following code:

#include<iostream.h>
#include<conio.h>
void main()
{
    clrscr();
    char choice[2][5]={"alpha","beta"};
    cout<<choice[0]<<endl;
    cout<<choice[1];
    getch();
}

But this is what comes:

alphabeta
beta

Can anyone tell me what I did wrong? Thank you.

P.S.:I know I am not using standard c++, but this is how we have to do in school.

Recommended Answers

Ts becouse alpha jst fills all the space allocatd and the next space will be filld with beta whch z not 5lettered and the string end"\0"is not present for alpha here ny way

Jump to Post

All 4 Replies

Ts becouse alpha jst fills all the space allocatd and the next space will be filld with beta whch z not 5lettered and the string end"\0"is not present for alpha here ny way

Member Avatar

Ts becouse alpha jst fills all the space allocatd and the next space will be filld with beta whch z not 5lettered and the string end"\0"is not present for alpha here ny way

Can you elaborate, and with proper English? Thank you.

There is not enough room in your array to hold "alpha". The C-string "alpha" ends with an additional '\0'(NUL)-character and thus needs 6 chars in the array. char choice[2][6]={"alpha","beta"}; should work.

Member Avatar

There is not enough room in your array to hold "alpha". The C-string "alpha" ends with an additional '\0'(NUL)-character and thus needs 6 chars in the array. char choice[2][6]={"alpha","beta"}; should work.

Thanks a lot Caligulaminus, it worked. I thought that, since "alpha" is held from choice[0][0] to choice[0][4], choice[0][5] should hold the null character.

Thanks again. :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.