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