Pessoal tou aqui na net ..mas tou com problemas en criar um array de strings em C..
Alguém pode dar a dica..
eu sei que consigo definir uma string usando char * word
Agora gostava de ter um array
Tipo
array[0] = "teste1"
array[1] = "teste2"
Obrigado..
Tenta:
char[] word;
depois nao tenho que alocar..memoria??
gostava se possivel ver algum code de exemplo
Tenta:
char[] word;
Estamos a falar de C..certo?
É que isso dá-me erro..
para declarar uma string tenho que fazer char *palavra[10] = "fsafs"
um array de strings deveria ser char **array...
agora preciso de alocar memoria...
Tenta...
char *palavra[10][10]
Fr33d disse:char *array[N];
Aparicio disse:char array[10][10];
Adwin disse:Se só queres por strings não precisas de usar mallocs para a alocares a memória.
C? ou C++?... Acho que estão confusos...
Vamos lá analisar isto...
Processo 2:
Limitar o array a um tamanho fixo, mas não impor à partida limite nas strings (abordagem do Fr33d) - "char* array[N]" é um array de N ponteiros para caracter. Um ponteiro para caracter pode ser tratado como uma string, mas sendo um ponteiro, para onde aponta? Não foi inicializado! É necessário um malloc para cada um dos N ponteiros, para que cada ponteiro aponte para uma zona de memória onde possamos ler/escrever.
char *array;
array = "abcdefghi";
char *array;
array = malloc( 10 );
strpcy( array, "abcdefghi" );
char* array = "abcdefghi"
char* a_minha_string = malloc(30 * sizeof(char)); //Para 30 caracteres no máximo
strcpy(a_minha_string, "abcdefghi");
Ok desta vez já há bastante mais informação útil...
Para quem ainda não percebeu eu sou um aficcionado do C... lol...
O meu post original limitou-se simplesmente a responder ao que o zebaril queria e note-se que lhe disse que se quiser algo mais sofisticado, não hesite falar comigo que eu ensino-o a fazer mallocs para o bem e para o mal.
Não vale apena estar já a chateá-lo com mallocs se ele nem sequer se sente confortável com ponteiros, não vale apena rebentarmos em Segmentation fault.....
Enfim,
cumps
printf("Ler file..\n");
char *array[30];
int i=0;
char word[20];
while( fscanf( fp, " %s", word) !=EOF )
{
printf("%s\n",word);
array[i] = word;
i++;
//Examine word here
}
fclose(fp);
//Ver
int j=0;
for (j=0; j<20; j++)
printf("%d %s\n",j,array[j]);