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