PDA

View Full Version : creare un array di stringhe in c


Miky Mouse
14-12-2006, 16:06
č una cosa che sembra tanto stupida e invece non riesco in nessun modo a farla.....

voglio solo uno stupido programma che prende in input 5 stringhe e le riscrive tali e quali... non chiedo tanto ma sono ore che ci provo e non ci riesco!

la cosa pių normale sarebbe questo ma non gira!



UW PICO(tm) 4.10 File: provarrayc.c

#include <stdio.h>
#include <stdlib.h>

int main()
{
int i=0;
char* a=malloc(20*sizeof(char));


for(i=0;i!=4;i++){
scanf("%s",a[i]);
}

for(i=0;i!=4;i++) {
printf("pippo %d %s\n",i,a[i]);
}
return 0;
}

andbin
14-12-2006, 16:20
č una cosa che sembra tanto stupida e invece non riesco in nessun modo a farla.....

voglio solo uno stupido programma che prende in input 5 stringhe e le riscrive tali e quali... non chiedo tanto ma sono ore che ci provo e non ci riesco!a) Dichiari l'array di stringhe cosė:
char *stringhe[5];

b) Allochi spazio per ogni stringa

c) Fai l'input delle stringhe

d) Stampi le stringhe

e) Fai una free delle stringhe

Miky Mouse
14-12-2006, 16:27
a) Dichiari l'array di stringhe cosė:
char *stringhe[5];

b) Allochi spazio per ogni stringa

c) Fai l'input delle stringhe

d) Stampi le stringhe

e) Fai una free delle stringhe


ooohh..... FINALMENTE... GRAZIE 1000 davvero

quindi č cosė alla fine...... giusto?


#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
char *stringhe[5];

for(i=0;i!=5;i++){
stringhe[i]=malloc(20*sizeof(char));}

for(i=0;i!=5;i++){
scanf("%s",stringhe[i]);}

for(i=0;i!=5;i++) {
printf("pippo %d %s\n",i,stringhe[i]);}

for(i=0;i!=5;i++){
free(stringhe[i]);}

return 0;
}

andbin
14-12-2006, 16:34
quindi č cosė alla fine...... giusto?Sė, cosė č ok. Fai solo il cast a (char*) del valore ritornato dalla malloc. Dovresti anche testare se l'allocazione fallisce o meno ...