[C]Dynamiczna alokacja pamięci,białe znaki.

Awatar użytkownika
Igor V
Użytkownik
Użytkownik
Posty: 1605
Rejestracja: 16 lut 2011, o 16:48
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 18 razy
Pomógł: 604 razy

[C]Dynamiczna alokacja pamięci,białe znaki.

Post autor: Igor V »

Witam.
Chciałbym zrobić coś takiego że wczytuję do tablicy charów jakiś ciąg znaków ,które mogą być oddzielone spacjami ,a następnie to zapisać do pliku zewnętrznego.Przy czym ta tablica musi być w alokowana dynamicznie.W sensie żeby ona mi się rozszerzała dopóki nie wcisnę enter ,co powoduje przejście do nowej tablicy.Jak można coś takiego najłatwiej zaimplementować ?
Gouranga
Użytkownik
Użytkownik
Posty: 1588
Rejestracja: 16 maja 2013, o 17:56
Płeć: Mężczyzna
Lokalizacja: Trójmiasto
Podziękował: 11 razy
Pomógł: 245 razy

[C]Dynamiczna alokacja pamięci,białe znaki.

Post autor: Gouranga »

w pętli robisz sobie
while (z = getchar() != '\n')
wtedy w z masz znak, tablicę musisz zadeklarować jako wskaźnik char *tab;
i potem rozszerzać ją funkcją realloc();

jeśli musisz mieć wiele tablic to troszkę się komplikuje bo musiałbyś mieć daleki wskaźnik char **arr, zakolować na nim jedną tablicę jako char **arr = (char **) malloc(x * sizeof(char*)); gdzie x zwiększasz z każdym enterem, potem zamiast malloca robisz realloc ale generalnie dynamika pamięci na dalekich wskaźnikach to coś przy czym bez piwa, dużej pizzy i wolnej nocki nie ma co siadać :)
ODPOWIEDZ