Witam,
Mam problem którego kompletnie nie rozumiem. W prostym programie jak niżej zadeklarowałem dwie tablice,
temp[] - sluzy do wprowadzenia ciagu znaku od uzytkownika
str[] - to tablica wskaznikow na ciag znaku.
Program przyjmuje ciagi znakow od uzytkownika, ale z niewiadomej mi przyczyny tablica str[], po wyjsciu z pierwszej petli, zostaje zapisana w calosci ostatnim wprowadzonym ciagiem znakow. Tak jakby metoda cin.getline() zamiast tylko pobierac dane i zapisywac do wejscia, umieszczala ostatnio pobrana wartosc w tablicy str[].
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main() {
const int Size=3;
int Max=80;
char temp[Max];
char *str[Size];
str[0]="pierwszy";
str[1]="drugi";
str[2]="trzeci"; //tak dziala, tablica wskaznikow na ciag znakow zadeklarowana poprawnie
for(int i=0;i<Size;i++)
{
cout<<"\nPodaj "<<i+1<<" ciag znakow: ";
cin.getline(temp,Max);
str[i]=temp;
}
for(int i=0;i<Size;i++)
{
cout<<i+1<<" ciag to: "<<str[i]<<endl;
}
return 0;
}
cpp