Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Napisati program na programskom jeziku C koji
- sa standardnog ulaza čita znak po znak do kraja
- linije. Znakovi se čitaju jedan po jedan. U početku
- se dinamički alocira niz od 10 elemenata. Nadalje,
- svaki put kada u nizu više nema mesta, niz se
- proširi za još 10 znakova. U slučaju da realokacija
- bude neuspešna, završiti čitanje i ispisati ono što
- može da stane u već alocirani prostor.*/
- #include<stdlib.h>
- #include<stdio.h>
- void main() {
- char *staro_p=NULL, *novo_p, c;
- int i = 0;
- while( (c=getchar()) != '\n') {
- if (i%10 == 0) {
- novo_p = realloc( staro_p, (i+10) * sizeof(char) );
- if (novo_p == NULL) {
- printf("Neuspesno realociranje\n");
- break;
- } else staro_p = novo_p;
- }
- staro_p[i++] = c;
- }
- /*ukoliko smo potrošili celokupan prostor, potrebno
- je da zauzmemo jos jedan bajt za završni znak*/
- novo_p = realloc( staro_p, (i+1) * sizeof(char) );
- if (novo_p == NULL) {
- printf("Neuspesno realociranje\n");
- i--;
- } else staro_p = novo_p;
- /*postavljamo završni znak*/
- staro_p[i] = '\0';
- printf("%s\n",staro_p);
- free(staro_p);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement