OT: kousek v C

Dalibor Straka dast na panelnet.cz
Pátek Duben 11 21:55:01 CEST 2008


On Fri, Apr 11, 2008 at 01:18:03PM +0200, Jaroslav Lukesh wrote:
> Dobrý den,
> 
> 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 +
> 

Ahoj,

takhle to urcite pujde;
	#define MAXLEN 100
	char * cx;

	cx = malloc(MAXLEN);
	snprintf(cx, MAXLEN, "[0 0 %d %d]");

Nezapomenout nekde udelat free(cx);
-- Dalibor Straka



Další informace o konferenci Linux