array e variadic funtion
  Home FAQ Contact Sign in
it.comp.lang.c only
 
Advanced search
POPULAR GROUPS

more...

it.comp.lang.c Profile…
 Up
array e variadic funtion         


Author: Vito.DeTullio
Date: Mar 7, 2008 00:02

Salve a tutti.
Ho un problema con una funzione con un numero di parametri variabile
(tipo *printf), non scritta da me, e che devo usare.
Tuttavia io, al momento della scrittura, non conosco il numero esatto
di parametri. So solo che sono tutti stringhe, e che sono in un array
di char* (di cui so la lunghezza).

semplificando enormemente, sono in questa situazione (non uso davvero
printf, ma il principio è identico)

#include

int main() {
// valori calcolati a run-time
char* formato = "%%s, %%s, %%s\n";
char* stringhe[] = { "uno", "due", "tre" };
int elementi = 3;

printf(formato, CHECIMETTO??);
}

il problema è che, ovviamente, non posso passare direttamente stringhe
a printf, e non posso "indovinare" quanti elementi ci saranno in
stringhe al momento della scrittura.
Show full article (1.03Kb)
2 Comments
Re: array e variadic funtion         


Author: phempt
Date: Apr 10, 2008 14:51

Vito.DeTullio@gmail.com ha scritto:
> Salve a tutti.
> Ho un problema con una funzione con un numero di parametri variabile
> (tipo *printf), non scritta da me, e che devo usare.
> Tuttavia io, al momento della scrittura, non conosco il numero esatto
> di parametri. So solo che sono tutti stringhe, e che sono in un array
> di char* (di cui so la lunghezza).
>
> semplificando enormemente, sono in questa situazione (non uso davvero
> printf, ma il principio è identico)
>
> #include
>
> int main() {
> // valori calcolati a run-time
> char* formato = "%%s, %%s, %%s\n";
> char* stringhe[] = { "uno", "due", "tre" };
> int elementi = 3;
>
> printf(formato, CHECIMETTO??); ...
Show full article (1.31Kb)
no comments
Re: array e variadic funtion         


Author: Giacomo Degli Esposti
Date: Apr 11, 2008 10:22

Vito.DeTullio@gmail.com wrote:
> Salve a tutti.

ciao
> Ho un problema con una funzione con un numero di parametri variabile
> (tipo *printf), non scritta da me, e che devo usare.
[...]
> il problema è che, ovviamente, non posso passare direttamente stringhe
> a printf, e non posso "indovinare" quanti elementi ci saranno in
> stringhe al momento della scrittura.
>
> Esiste un modo per poter "esplodere" (una macro?) un vettore nei suoi
> elementi?

Purtroppo no! Per lo meno, non in modo standard.
A seconda del compilatore che stai usando puoi provare a scrivere
dell'assembler per riprodurre la stessa situazione generata dal compilatore.

Tra l'altro si tratta di una faq: http://c-faq.com/varargs/index.html
La 15.13 e' quella che ti interessa.

ciao
Giacomo
no comments

RELATED THREADS
SubjectArticles qty Group
how to join array into arraycomp.lang.perl.misc ·
Re: Does passing an array make a copy of the array in memory?comp.lang.labview ·