Eu preciso implementar uma lista estática duplamente encadeada, porém não estou conseguindo manipular
vetores de struct com ponteiro, preciso encadear o vetor de struct item.
por exemplo: list->item[indice].prox = list->item[indice + 1];
Eu não entendi ainda como é a sintaxe para passar endereço da struct para ponteiro e vice-versa.
Obs 1: Vi em alguns lugares o uso de "&list->item[indice]" como passagem de endereço, porém estou na dúvida ainda.
Obs 2: Uma outra forma de implementar a lista estática encadeada seria criar um ponteiro do tipo elemento na ListaString e alocar na função createLista a quantidade de itens e fazer o ponteiro do tipo elemento da lista apontar para esse novo bloco de memória alocado, porém não consigo manipular assim também!
Se alguém conseguir me dar um exemplo de como encadear o vetor item de uma das maneiras apresentadas seria de grande ajuda!
1º Maneira
struct elemento { char *info; struct elemento *prox; struct elemento *ant;}; struct ListaString { struct elemento *inicio; struct elemento *fim; int currentSize; struct elemento item[max];};void * createLista(int tamanho){ struct ListaString *list = malloc(sizeof(struct ListaString *)); Duvida a partir daqui aqui!}
========================================================================================================
2º Maneira
struct elemento { char *info; struct elemento *prox; struct elemento *ant;};struct ListaString { struct elemento *inicio; struct elemento *fim; int currentSize; struct elemento *item;};void * createLista(int tamanho){ struct ListaString *list = malloc(sizeof(struct ListaString *)); Duvida a partir daqui aqui!}