PDA

Visualizza la versione completa : [C] Come passare un vettore char ad una funzione


Vincenzo95
11-11-2013, 22:52
ciao a tutti. Sto imparando il linguaggio C e sinceramente ho incontrato delle difficoltà nel passare una stringa ad una funzione...so che è una cosa banale ma non riesco proprio capire come funziona
devo usare una funzione per creare un vettore binario (composto solo da '0'/'1')
il problema è che devo creare un progetto con 2 file sorgenti (.c) e un file header (.h).
ho impostato il codice in questo modo:

--------sorg1.c----------


# include <stdio.h>
# include <stdlib.h>
# include "header.h"
int main ()
{
char vettore[10];
aggiungi_bit(vettore);
for (i=0; i<10; i++)
{
printf("%c",vettore[i]);
}
}


---------sorg2.c------


# include <stdio.h>
# include <stdlib.h>
char aggiungi_bit(vett)
{
int x;
for(x=0; x<10; x++)
{
vett[x]='1';
x++;
vett[x]='0';
}
}

------------header.h----------


char aggiungi_bit(vett);


ditemi,per favore, tutto quello che è errato e come va impostato il codice.
Grazie

oregon
11-11-2013, 22:59
Questo modo "creativo" di mostrare tre file insieme è fantastico :D

Ma non si capisce nulla.

Magari potresti metterli uno dopo l'altro con i tag CODE?

oregon
11-11-2013, 23:02
Ecco ... ora va meglio ...

La funzione dovrebbe essere

void aggiungi_bit(vett[])

e poi non mi convince quel x++; all'interno della for ...

Scara95
12-11-2013, 01:03
void aggiungi_bit(char vett[])

oppure

void aggiungi_bit(char *vett)

Sono sicuro che quella di Oregon fosse solo una distrazione ;)

oregon
12-11-2013, 10:21
Ovviamente void aggiungi_bit(char vett[]) ... :-)

(In realtà volevo solo scrivere

vett[]

per fargli capire il problema ma poi è partito un copia-incolla automatico :-)))

Scara95
12-11-2013, 21:29
Immaginavo :)

Vincenzo95
12-11-2013, 23:03
grazie delle risposte... alla fine ci sono riuscito dopo un po' di tentativi e funziona così:


sorg1.c

....
int main ()
{
char vettore[10];
aggiungi_bit(vettore);
....

sorg2.c
...

void aggiungi_bit(vett[]){
...


header.h


void aggiungi_bit(vett[]);

Loading