Hej wszystkim
Mam do napisania banalny program, ale dopiero się uczę i C++ mnie cały czas zaskakuje. Zaczęłam od "podstaw podstaw", więc zadanie jest proste. Wczytać ciąg znaków, a potem wywalić go na ekran. Generalnie wszystko działa ładnie. Tylko, że chyba powinno się wywalać, nie? :P
#include <iostream>
using namespace std;
int main ()
{
char znak;
char ciag[1];
char* c = ciag;
while(true)
{
cout<<"podaj ciag\n";
cin>>ciag;
int dlu = strlen(ciag);
cout<<"dlugosc "<<dlu<<"\n";
cout<<"ciag "<<c<<"\n";
cout<<"ciag[2] "<<ciag[2]<<endl;
}
}
efekt jest taki, że przyjmuje mi ciąg dowolnej długości, zwraca jego długość bez błędu. w tabeli pod ciag[0] mam pierwszy znak w ciągu. Ale pozwala mi się też odwoływać do ciąg[1], ciag[2] itd bez zwracania błędu. A przecież deklarację mam na tablicę jednoelementową... Pasuje mi, że tak działa, pytanie tylko dlaczego. Podpowiecie?