[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
-
- Użytkownik
- Posty: 175
- Rejestracja: 27 paź 2013, o 20:59
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 5 razy
- Pomógł: 10 razy
[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
Dzień dobry.
Mam do napisania program, którego jedną z operacji jest stworzenie tablicy o wierszach w liczbie n, używając funkcji z C: malloc, calloc, realloc, free, etc. Nie można używać "[]" - trzeba działać na samych wskaźnikach.
Ma to działać mniej więcej tak:
1) Wpisujemy na standardowe wejście liczbę n.
2) Tutaj będzie opis każdego z wierszy: Wiersz[1]: wpisujemy liczbę x, która określa ilość znaków w wierszu, a po liczbie x wpisujemy, ciąg znaków, który chcemy w wierszu umieścić.
Powtarzamy tę czynność aż dojdziemy do n-tego wiersza. Czyli np:
START:
N=3
2 x y
3 x y z
4 a b f 8
KONIEC.
Czyli tablica wygląda tak:
[x][y]
[x][y][z]
[a][f][8]
Na tej zasadzie ma to działać. Przyznam się, że jestem dopiero początkujący i to zadanie jest dla mnie trochę wyzwaniem.
WAŻNE: Możemy użyć do tego tylko funkcji malloc, calloc, realloc. Nie używamy operatora new i biblioteki string.
Czy mógłby ktoś napisać mi kod tego programiku lub przynajmniej powiedzieć, jak to zrobić?
Pozdrawiam,
Jacek.
Mam do napisania program, którego jedną z operacji jest stworzenie tablicy o wierszach w liczbie n, używając funkcji z C: malloc, calloc, realloc, free, etc. Nie można używać "[]" - trzeba działać na samych wskaźnikach.
Ma to działać mniej więcej tak:
1) Wpisujemy na standardowe wejście liczbę n.
2) Tutaj będzie opis każdego z wierszy: Wiersz[1]: wpisujemy liczbę x, która określa ilość znaków w wierszu, a po liczbie x wpisujemy, ciąg znaków, który chcemy w wierszu umieścić.
Powtarzamy tę czynność aż dojdziemy do n-tego wiersza. Czyli np:
START:
N=3
2 x y
3 x y z
4 a b f 8
KONIEC.
Czyli tablica wygląda tak:
[x][y]
[x][y][z]
[a][f][8]
Na tej zasadzie ma to działać. Przyznam się, że jestem dopiero początkujący i to zadanie jest dla mnie trochę wyzwaniem.
WAŻNE: Możemy użyć do tego tylko funkcji malloc, calloc, realloc. Nie używamy operatora new i biblioteki string.
Czy mógłby ktoś napisać mi kod tego programiku lub przynajmniej powiedzieć, jak to zrobić?
Pozdrawiam,
Jacek.
-
- Użytkownik
- Posty: 2
- Rejestracja: 29 lis 2014, o 16:37
- Płeć: Mężczyzna
- Lokalizacja: Everest
[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
Jak masz C++ to nie używaj starego C tylko wektora
#takBardzoPomoc
Kod: Zaznacz cały
http://www.cplusplus.com/reference/vector/vector/
#takBardzoPomoc
-
- Użytkownik
- Posty: 175
- Rejestracja: 27 paź 2013, o 20:59
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 5 razy
- Pomógł: 10 razy
[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
Mogę użyć tylko biblioteki cstdlib i iostream. Tworzenie dynamicznej tablicy musi się niestety odbyć metodą z C, mimo, że językiem zadania jest język C++.
Jak zrobić to przy pomocy malloca?
Jak zrobić to przy pomocy malloca?
-
- Użytkownik
- Posty: 175
- Rejestracja: 27 paź 2013, o 20:59
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 5 razy
- Pomógł: 10 razy
[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
Właśnie czytam... Ale przyznam, że jestem sporym noobkiem w programowaniu i nie rozumiem tematu w ogóle.. :/
- Kacperdev
- Użytkownik
- Posty: 3260
- Rejestracja: 23 mar 2010, o 19:19
- Płeć: Mężczyzna
- Lokalizacja: Bydgoszcz
- Podziękował: 17 razy
- Pomógł: 686 razy
[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
Cały zestaw danych ma być zapisany w jednej tablicy. Czy ma tu być \(\displaystyle{ N}\) tablic. Innymi słowy, każy wiersz ma być oddzielną tablicą?
-
- Użytkownik
- Posty: 175
- Rejestracja: 27 paź 2013, o 20:59
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 5 razy
- Pomógł: 10 razy
[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
Tak. Ma to być tablica, której elementami są tablice. Przyznam się, że nie wiem do końca jak to ma wyglądać od strony kodu, ale wiem, jak to ma działać.
- Kacperdev
- Użytkownik
- Posty: 3260
- Rejestracja: 23 mar 2010, o 19:19
- Płeć: Mężczyzna
- Lokalizacja: Bydgoszcz
- Podziękował: 17 razy
- Pomógł: 686 razy
[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
Kod: Zaznacz cały
int ** tab;
int i=0;
tab=malloc(lw*sizeof(*tab));
for(i=0;i<lw;++i) *(tab+i)=malloc(lk*sizeof(**tab));
w trzecim przydzielam pamięć to tablicy wskaźników (lw - liczba wierszy) które będą wierszami.
Następnie do każdego wiersza przydzielam odpowiednią ilość pamięci na kolumnę.
dobrze przeanalizuj ten kod i przede wszystkim eksperymentuj.
-
- Użytkownik
- Posty: 175
- Rejestracja: 27 paź 2013, o 20:59
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 5 razy
- Pomógł: 10 razy
[C++] Tworzenie dynamicznej tablicy o różnej ilości wierszy
Bardzo dziękuję.
Już się zabieram za analizę tego kodu.
Pozdrawiam.
EDIT:
W 3 i 4 linijce kodu wyrzuca mi błąd:
In function 'int main()':
[Error] invalid conversion from 'void*' to 'int**' [-fpermissive]
[Error] invalid conversion from 'void*' to 'int*' [-fpermissive]
Czym to może być spowodowane?
EDIT:
Już wszystko działa. Trochę pokombinowałem i smiga.
Dziękuję za pomoc.
Już się zabieram za analizę tego kodu.
Pozdrawiam.
EDIT:
W 3 i 4 linijce kodu wyrzuca mi błąd:
In function 'int main()':
[Error] invalid conversion from 'void*' to 'int**' [-fpermissive]
[Error] invalid conversion from 'void*' to 'int*' [-fpermissive]
Czym to może być spowodowane?
EDIT:
Już wszystko działa. Trochę pokombinowałem i smiga.
Dziękuję za pomoc.