[C++] Usuwanie parzystych komórek w dynamicznej tablicy.

jackblack
Użytkownik
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++] Usuwanie parzystych komórek w dynamicznej tablicy.

Post autor: jackblack »

Dobry wieczór,

Mam do napisania programik, który tworzy tablicę, której elementami są tablice. Czyli stosuję do tego podwójny wskaźnik..Mogę używać tylko funkcji z C: Malloc, Calloc, Realloc, biblioteki iostream i cstdlib. Za bardzo nie wiem, na jakiej zasadzie to wszystko działa, bo jestem początkujący. W każdym razie, tworzę tablicę dwuwymiarową, nazwijmy ją tab, o zmiennej długości wierszy np:
[x][y][z]
[a][c][d]
[x]
[z][g][f][d][s]

Jedną z operacji jaką mam zrobić, to usunięcie parzystych komórek w jednym z wierszy(licząc od 0...m)
Czyli np, w wierszu ostatnim usuwam [z][f][s] i zostaje mi [g][d]. Usunąłem element zerowy, drugi i czwarty. Próbuję to robić na takiej zasadzie(wyjątkowo nieefektywnie): Tworzę malloc'iem nową tablicę, nazwijmy ją temp, do której zapisuję pętlą nieparzyste elementy wiersza tablicy tab na którym działam, a potem kopiuję robię realloc'a wiersza tablicy tab. Zmniejszam jego rozmiar o parzyste elementy, potem wklejam z tablicy temp z powrotem do tablicy tab nieparzyste elementy, które wcześniej przekopiowałem.
Problem polega na tym, że program mi się ciągle sypie.. Ciągle coś jest nie tak, mimo, że siedzę nad tym chyba od 3 godzin. Ciągle nad tą jedną, prostą wydawałoby się operacją. I ciągle jakieś problemy: tutaj się program wysypuje i przestaje działać, tutaj w ogóle jak próbuję kopiować z jednej tablicy do drugiej, a potem wyświetlić, to się okazuje, że wiersz w tej docelowej tablicy jest pusty, mimo, że skopiowałem.. Już nie wiem, jak mam się za to zabrać. Czy ktoś mógłby mi powiedzieć, napisać fragment kodu, jak mam usunąć te parzyste komórki z wiersza?

Pozdrawiam.
ODPOWIEDZ