Kezdőoldal » Számítástechnika » Programozás » Miért csak egyszer hajtódik...

Miért csak egyszer hajtódik végre a ciklus?

Figyelt kérdés

/*<creator>, 2011/11/09

*$ID: sc4.c

*A cél egy olyan program lenne, amely tetszőleges hosszú string-et be tud

*olvasni, majd egy előre nem meghatározott méretű tömbbel/pointerrel tárolja,

*aminek a mérete a stringhez igazodik. N egy számláló, ami a string hosszát

*(lezárókarakterrel együtt) mutatja. A printf-ek csak ellenőrzésre vannak.

*/

#include<stdio.h>

#include<stdlib.h>

#include<string.h>


int main()

{

char *cPtr; /*A stringet tároló pointer*/

int N=1; /*Számláló*/

int i=0;

cPtr = malloc(sizeof(char)*N); /*cPtr kezdeti mérete(1 char hosszú)*/

cPtr[0]=1;

/*cPtr inicializálása*/


for(i=0;cPtr[i]!='\0';i++){

N++;

cPtr = realloc(cPtr, strlen(cPtr)+2);

scanf("%c", &cPtr[i]);} putchar('\n');

/*ciklus: az első enterig megy

*ciklusmag: növeli a számlálót, területet foglal a következő

*karakternek, beolvas egy karaktert

*/


/*innentől csak ellenőrzés*/

for(i=0;cPtr[i]!='\0';i++){

printf("%c", cPtr[i]);} putchar('\n');


printf("%d", N); putchar('\n');


return 0;

}

/*a program lefordul gcc-vel, de csak egyszer hajtódik végre a ciklus*/


2011. nov. 9. 12:21
 1/1 anonim ***** válasza:

Nem értem például hogy minek bonyolítani

/*innentől csak ellenőrzés*/

printf("%s", cPtr) kiírja az adott string-et.


cPtr = realloc(cPtr, strlen(cPtr)+2);

Itt feltételezel valamit azt, hogy biztos ki lesz nullázva a foglalt memória.

scanf("%c", &cPtr[i])

Az input beolvasása nem úgy működik. Mikor van a vezérlés a standard inputon és mikor a cikluson?


Tegnap volt ilyen kérdés amire válaszoltam: http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..

2011. nov. 9. 15:57
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!