Ciao,
ho semplificato un po' il codice mantenedo la parte che non riesco a gestire, ovvero come referenziare la tabella in memoria e il suo aggiornamento. Grazie mille
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
typedef struct cod_trans {
// Nomi
char articolo[15][5];
int contatore[15];
} variabile_tabella;
//funzione per la ricerca binaria del codice inserito
int ricerca(char *lista[], int n, char *x)
{
int p,u,m;
p = 0;
u = n-1;
while(p<=u) {
m = (p+u)/2;
if(strcmp(lista[m],x) == 0)
lista.contatore[m] += 1; {
return m; // valore x trovato alla posizione m
}
if(strcmp(lista[m]<x))
p = m+1;
else
u = m-1;
}
// se il programma arriva a questo punto vuol dire che
// il valore x non è presente in lista, ma se ci fosse
// dovrebbe trovarsi alla posizione p (nota che qui p > u)
return -1;
}
/* ---------------
** MAIN
** --------------- */
int main()
{
char *tabella_in_memoria[] = variabile_tabella;
char codice_da_ricercare;
printf("Inserisci il codice ");
scanf("%s", &codice_da_ricercare; );
int indice = ricerca(tabella_in_memoria, 15, codice_da_ricercare);
.
.
.
.
.
.
system("PAUSE");
return 0;
}