OT: kousek v C
Karel Dudasek
karel.dudasek na vghur.army.cz
Pátek Duben 11 13:26:26 CEST 2008
Dobrý den,
On Fri, 11 Apr 2008, Jaroslav Lukesh wrote:
> prosím o malé postrčení v C.
>
> Potřebuji dostat do cx řetězec např. "[0 0 123 456]", přičemž pro tento
> případ je a=123 a b=456
>
> 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 + "]";
>
>
> No a hlásí mi to
>
> test.c:112: warning: passing arg 1 of `sprintf' makes pointer from integer
> without a cast
> test.c:113: warning: passing arg 1 of `sprintf' makes pointer from integer
> without a cast
> test.c:115: error: invalid operands to binary +
Nešlo by rovnou udělat
sprintf(cx, "[0 0 %i %i]", a, b );
Ty prvni veci jsou varovani, protoze retezec se ma definovat jako
"char *cx;" nebo "char cx[delka];"
Ta konecna chyba: v klasickem C se retezce nedaji takto scitat.
Obvykle pouzivam funkci strcat.
Aspon takto to mam naucene ja.
Karel Dudasek
Další informace o konferenci Linux