Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak zadeklarować dynamiczną tablicę jednowymiarową z danymi typu string?

Ostatnio zmodyfikowano 2013-09-20 22:11
Autor Wiadomość
dominont
Temat założony przez niniejszego użytkownika
Jak zadeklarować dynamiczną tablicę jednowymiarową z danymi typu string?
» 2013-09-20 21:17:10
Cześć. Potrzebuję dynamicznej tablicy jednowymiarowej gdzie na życzenie użytkownik programu dodaje nowe elementy tablicy typu string. Niestety nie mogę sobie z tym poradzić. Kod z danymi typu int działa i zamieszczę poniżej kod który można skopiować i skompilować:
C/C++
#include <iostream>

using namespace std;

int n = 1, dane, wybor;
int * tab = new int[ n ];

main()
{
   
    while( wybor != 2 )
    {
        cout << "Wpisz 1 aby dodac element, wpisz 2 zeby wyswietlic elementy: ";
        cin >> wybor;
        if( wybor == 1 )
        {
            cout << "Wpisz nowy element: ";
            cin >> dane;
            tab[ n - 1 ] = dane;
            n++;
        }
        if( wybor == 2 )
        {
            for( int i = 0; i < n - 1; i++ )
            {
                cout << "Wypisuje: " << tab[ i ] << endl;
            }
        }
    }
    return 0;
}
Niestety po przerobieniu tablicy i danych na string coś zaczyna się psuć :/ Liczę na Waszą pomoc :)[/i]
P-92388
pekfos
» 2013-09-20 21:18:34
coś zaczyna się psuć :/
Co?
P-92389
dominont
Temat założony przez niniejszego użytkownika
» 2013-09-20 21:21:46
Przy zmianie kodu na ten poniżej, po wprowadzeniu drugiego elementu tablicy, program się sypie i pozostaje tylko zamknąć program.
C/C++
#include <iostream>

using namespace std;

int n = 1, wybor;
string dane;
string * tab = new string[ n ];

main()
{
   
    while( wybor != 2 )
    {
        cout << "Wpisz 1 aby dodac element, wpisz 2 zeby wyswietlic elementy: ";
        cin >> wybor;
        if( wybor == 1 )
        {
            cout << "Wpisz nowy element: ";
            cin >> dane;
            tab[ n - 1 ] = dane;
            n++;
        }
        if( wybor == 2 )
        {
            for( int i = 0; i < n - 1; i++ )
            {
                cout << "Wypisuje: " << tab[ i ] << endl;
            }
        }
    }
    return 0;
}
P-92390
pekfos
» 2013-09-20 21:23:52
Bo tablica ma rozmiar 1.
P-92391
dominont
Temat założony przez niniejszego użytkownika
» 2013-09-20 21:25:40
A te "n++" nic nie daje?
P-92392
pekfos
» 2013-09-20 21:26:33
Zwiększa n o 1. Tylko tyle.
P-92393
dominont
Temat założony przez niniejszego użytkownika
» 2013-09-20 21:28:16
Na moje oko to właśnie zwiększa ilość elementów tablicy, bo kod pierwszy z int'ami nie działa bez n++.
P-92394
pekfos
» 2013-09-20 21:29:32
Przypadek. Jeśli w kodzie z intami wpiszesz odpowiednio dużo elementów, to też się posypie.
P-92395
« 1 » 2
  Strona 1 z 2 Następna strona