complicometro.
Problema:
Alocar um array de arrays de chars.
Desde que fiz picc à trinta milenios que sonho com escrever este código.
tudo é simplificado por ter uma funçao que recebe um ponteiro para um array de ponteiros de char , um ponteiro para um chunk de memoria onde estou a escrever o conteudo do array, e um ponteiro para o conteudo.
posto isto sempre que me apetecer escrever qualquer coisa para lá posso simplesmente:
char ** myArray = malloc(sizeof(char**)* MyArrLength);
char *myChunk = malloc(MAX_STRLEN * nElems);
addStringToArray(&myArray, &myChunk, "uma string completamente ao acaso"); addStringToArray(&myArray, &myChunk, "ai que contentamento!!");
printf("%s", *(myArray+1));
vai expor na consola "ai que contentamento!!"
void addStringToArray(char*** arrP, char** chunk, char * source){
char ** i = *arrP;
char * dst = *chunk;
*dst='\0';
mystrcat(dst,source); //copiar para o chunk
*i=dst; //guardar o endereço de inicio desta string
//acertar o i
*arrP=i;
//avançar esse pointer
++(*arrP);
//acertar o p
*chunk = dst + strlen(source)+1;//+1 pk queremos guardar o '\0'
}
Enfim... divirto-me com estas coisas. =)
terça-feira, outubro 13, 2009
Subscrever:
Enviar feedback
(
Atom
)
Sem comentários :
Enviar um comentário