Perchè non funziona.
Non salva i valori che deve.
Credevo bastasse un'occhiata veloce di un esperto per capire dove sbaglio.
codice:
//Si scriva un programma che acquisisca 3 stringhe, ciascuna contenente il
//nome di un prodotto e il relativo prezzo separati da spazio. Una volta
//memorizzate queste informazioni in opportune variabili, il programma
//riceve un’ulteriore stringa contente un nome di prodotto e un valore intero
//corrispondente ad una quantità.
//Il programma deve:
//a. Stabilire se il prodotto inserito per ultimo corrisponde ad uno dei
//prodotti memorizzati in precedenza
//b. In caso negativo, richiedere un altro inserimento di nome prodotto e
//quantità
//c. In caso positivo, calcolare e visualizzare il costo totale moltiplicando
//quantità e prezzo del prodotto in questione

// realizzo questo programma senza usare le strutture
#include <stdio.h>
#include <stdlib.h>
#define N 70 //dimensione riga nome_prodotto + prezzo

void acquisisci(char * vettore[][N],int dim);

int main()
{
    char testo[3][N];
    //3: 3 colonne, cioe' nome prezzo quantita'
    char tabella[3][3][N];

    int i,j;
    printf("Inserisci: nome prodotto e prezzo, separati da spazio\n");

    for(i=0;i<3;i++){
      //grezza acquisizione.........
      fgets(&testo[i][0], N, stdin);

      //purifico l'input.....mi aspetto 2 parole.
        sscanf(&testo[i][0], "%s %s",&tabella[i][0][0], &tabella[i][0][1] );


      }//fine ciclo purificazione

    //MOSTRO:

    printf("\n\n");
    for( i= 0, j=0; i<3; i++,j++)
    printf("%s .....%s\n", tabella[i][0], tabella[i][0]);
    //acquisisci(testo, N);


    return 0;
}

void acquisisci(char * vettore[][N],int dim){
    int i;
  for (i=0; i<3; i++){
    gets(&vettore[i][0]);
    printf("ok");
  }

}