Ciao,
stavo seguendo la discussione e sinceramene anche io non capisco. Credevo che str dichiarato come
fosse equivalente a un array di array di char, quindi a un array di stringhe.
Infatti questo codice funziona e stampa tre stringhe:
codice:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char **str = (char **) malloc(3*sizeof(char *)); // alloco un array di stringhe
str[0] = (char *) malloc(10*sizeof(char)); // alloco una stringa di 10 caratteri
str[1] = (char *) malloc(10*sizeof(char));
str[2] = (char *) malloc(10*sizeof(char));
str[0][0]='p'; // inserisco i caratteri della stringa
str[0][1]='i';
str[0][2]='p';
str[0][3]='p';
str[0][4]='o';
str[0][5]='\0'; // il terminatore della stringa
str[1][0]='p'; // inserisco i caratteri della stringa
str[1][1]='l';
str[1][2]='u';
str[1][3]='t';
str[1][4]='o';
str[1][5]='\0'; // il terminatore della stringa
str[2][0]='t'; // inserisco i caratteri della stringa
str[2][1]='o';
str[2][2]='p';
str[2][3]='o';
str[2][4]='l';
str[2][5]='i';
str[2][6]='n';
str[2][7]='o';
str[2][8]='\0'; // il terminatore della stringa
printf("%s\n", str[0]); // stampo la stringa passando il primo puntatore dell'array di puntatori
printf("%s\n", str[1]);
printf("%s\n", str[2]);
return 0;
}
C'è qualche problema?
Grazie.

EDIT - Penso di aver capito: non avevo letto bene.
@toni00t: se ho capito bene oregon non ti sta "contestando" il fatto che str sia un array di stringhe, ma il fatto che tu lo abbia inizializzato uguale a "pippo" che è una stringa (cioè un array di caratteri).