OT: kousek v C

Ladislav Vaiz spam na nagano.cz
Pátek Duben 11 13:29:18 CEST 2008



On Fri, 11 Apr 2008, Petr Simek wrote:

> On Fri, 11 Apr 2008, Jaroslav Lukesh wrote:
>
>> V proměnných a,b mám INT čísla; čísla na začátku řádků jsou čísla řádků kde
>> je nějaká chyba:
>>
>>             char aa,bb;
>> 112:        sprintf(aa, "%i", a);
>> 113:        sprintf(bb, "%i", b);
>>             char cx;
>> 115:        cx = "[0 0 " + aa + " " + bb + "]";
>
> aa,bb,cx jsou char tedy jeden byte. Minimalne cx by mel byt pointer na char.
> Druha vec je ze nemate nikde alokovane misto pro "[0 0 " + aa + " " + bb + "]"

Pak jeste mate chybu u cx, jazyk C neumi takto scitat retezce, na to je 
prilis nizkourovnovy. Napsal bych to takto:

char cx[30]; /* podle maximalniho poctu znaku plus jeden pro \0 */
sprintf(cx, "[0 0 %d %d]", aa, bb);

No a samozrejme do bb typu char neulozite hodnotu 456, takze short int 
nebo int. Formatovaci retezec zustane.

Lada


Další informace o konferenci Linux