Portál AbcLinuxu, 9. května 2025 02:59

Dotaz: Bitova pole v C

Bundas avatar 7.1.2014 17:02 Bundas | skóre: 14 | Pardubice
Bitova pole v C
Přečteno: 318×
Odpovědět | Admin
Zdravim. Nefunguje mi tento zdrojak:


int main(void){

    int i;
    i = 0;
    int vstup;
scanf("%d", &vstup);
    for(int r[i]; r[i] < vstup; i++){
	r[0] = 5;
	printf("%d", r);
}
	
    return 0;

}
Nevite proc? Nema to zadny vystup, ale mel by tam byt printf("%d", r);
------------------------------------------------------------------------
Nefunguje ani tohle. Ale tohle alespon neco vypise. (vypise to nulu)


int main(void){

int i,r;
i = 0;
int vstup;
scanf("%d", &vstup);
    for(int r[i]; i < vstup; i++)
r[0] = 5;
printf("%d", r);
return 0;
}
Abe the Messiah has come.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.1.2014 17:36 potato
Rozbalit Rozbalit vše Re: Bitova pole v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proč by první příklad měl něco vypsat?
int r[i];
vytvoří na zásobníku neinicializované pole nulové velikosti (to je samo o sobě dost pochybné). Takže hned první podmínka v tom for-cyklu udělá sáhne do neinicializované části zásobníku. Výsledek je náhodný, ale s větší pravděpodobností se cyklus hned ukončí...

Celkově ten cyklus nemůže udělat nic smysluplného. To r uvnitř cyklu nemá nic společného s r vně cyklu, je to nová proměnná!
Řešení 1× (Luboš Doležel (Doli))
7.1.2014 17:51 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Bitova pole v C
Odpovědět | | Sbalit | Link | Blokovat | Admin

Nevím jak to souvisí s bitovým polem, ale první i druhé je dost blbě, deklaruješ pole nulové délky
int r[i] (bo i = 0)
a pak přistupuješ na jeho první prvek
r[i]
A dokonce tam chceš zapisovat za pseudo-náhodných podmínek
r[0] = 5
Deklarací r v prvním řádku je zbytečná, r není nikde použito, a zapisujete do nealokovaného prostoru při zadání vstupu >= 0. Něco vypíše, protože je tam printf, který se provede vždy na rozdíl od prvního příkladu.

Jen matně hádám čeho chceš docílit, takže nemůžu napsat jak to má být…

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.