Nowa tablica w funkcji. Widoczność funkcja -> main

0

Chcę w funkcji pobrać z pliku ilość wierszy, następnie utworzyć tablicę string wers[ile_wersow_w_zdaniu];
A w main przekonwertować ze stringa do tablicy znaków skacząc po tablicy wers[i];
Problem: widoczność tablicy. Deklarując w funkcji tablicę nie jest ona dostępna w main. Co mam zrobić?
Nie problem zrobić tablicę globalną, ale tworząc tablicę o liczbie elementów, która dopiero zostanie zliczona w funkcji i uczynić ją globalnie widoczną - w tym tkwi mój problem.
Deklaracja tablicy string wers = new string[ile_wersow_w_zdaniu];
ani powyższa nie odnosi skutku.

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

void metoda1()
{
    ifstream  in("D:\plik.txt");

    int licznik=0;
    int ile_wersow_w_zdaniu=0; string temp;
    while(getline(in, temp)){++ile_wersow_w_zdaniu;}//getline zwróci FALSE gdy nie napotka nowego wiersza zamykając pętlę while
    string *wers[ile_wersow_w_zdaniu]; //nowa tablica
    while(getline(in, *wers[licznik]))
     {cout<<wers[licznik]<<endl;
     licznik++;}
}

int main(int argc, char *argv[])
{
metoda1();

char znaki[1000];
string temp="";
for(int i=0;i<100;i++)
{memcpy(znaki,*wers[i].c_str(),*wers[i].size());
temp+=znaki;
}
cout<<temp;
    system("PAUSE");
    return EXIT_SUCCESS;
}
0

Ułatw sobie życie i użyj wektora.
http://www.cplusplus.com/reference/stl/vector/

0

Ew. możesz poprzez funkcję zwrócić ilość wierszy do maina i dopiero tam zaalokować pamięć operatorem new.

1 użytkowników online, w tym zalogowanych: 0, gości: 1