Cześć! Zadanie:
Napisz funkcję, która zarezerwuje 10 elementową tablicę, a jej adres przekaże wskaźnikowi o nazwie linijka. Ma to być tablica, w której można przechowywać wskaźniki do tablic znaków.
Następnie za pomocą pętli for dla każdego z 10 elementów tej tablicy linijka:
- zarezerwuj operatorem new tablicę 80 znaków
- jej adres wpisz do kolejnego elementu tablicy linijka.
- w tej 80 znakowej tablicy znaków umieść C-string "to jest linijka nr n" - gdzie n jest kolejnym numerem linijki (0-9).
Po zrobieniu tego wobec wszystkich 10 elementów tablicy linijka za pomocą pętli for wypisz na ekranie kolejno zawartość tych C-stringów.
Kod:
#include <iostream>
#include <cstdlib>
using namespace std;
char **rezerwacja()
{
return new char *[10];
}
char *wpisanie(char t[], int liczba)
{
int i = 0;
while (t[i++]);
t[--i] = static_cast<char>(static_cast<int>('0') + liczba);
return t;
}
int main()
{
char tablica[80] = "to jest linijka nr ";
char **linijka = rezerwacja();
for (int i = 0; i < 10; ++i)
{
linijka[i] = new char[80];
linijka[i] = wpisanie(tablica, i);
}
for (int i = 0; i < 10; ++i)
cout << linijka[i] << endl;
delete[] linijka;
system("pause");
}
Problem w tym, że wypisuje "to jest linijka nr 0123456789" dla każdego elementu. Gdzie jest błąd? :)