Advertisement
KvArt

Realokacija stringa

Jul 12th, 2022
627
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.05 KB | None | 0 0
  1. /*Napisati program na programskom jeziku C koji
  2. sa standardnog ulaza čita znak po znak do kraja
  3. linije. Znakovi se čitaju jedan po jedan. U početku
  4. se dinamički alocira niz od 10 elemenata. Nadalje,
  5. svaki put kada u nizu više nema mesta, niz se
  6. proširi za još 10 znakova. U slučaju da realokacija
  7. bude neuspešna, završiti čitanje i ispisati ono što
  8. može da stane u već alocirani prostor.*/
  9.  
  10. #include<stdlib.h>
  11. #include<stdio.h>
  12. void main() {
  13. char *staro_p=NULL, *novo_p, c;
  14. int i = 0;
  15. while( (c=getchar()) != '\n') {
  16. if (i%10 == 0) {
  17. novo_p = realloc( staro_p, (i+10) * sizeof(char) );
  18. if (novo_p == NULL) {
  19. printf("Neuspesno realociranje\n");
  20. break;
  21. } else staro_p = novo_p;
  22. }
  23. staro_p[i++] = c;
  24. }
  25. /*ukoliko smo potrošili celokupan prostor, potrebno
  26. je da zauzmemo jos jedan bajt za završni znak*/
  27. novo_p = realloc( staro_p, (i+1) * sizeof(char) );
  28. if (novo_p == NULL) {
  29. printf("Neuspesno realociranje\n");
  30. i--;
  31. } else staro_p = novo_p;
  32. /*postavljamo završni znak*/
  33. staro_p[i] = '\0';
  34. printf("%s\n",staro_p);
  35. free(staro_p);
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement