Salve a tutti,
Mi trovo davanti ad un esercizio che richiede l'utilizzo di un array di puntatori i quali puntino ad una lista.
Il problema sussiste nel fatto che il compilatore non segnala alcun Warning, ma, il programma si blocca nel momento in cui utilizzo l'array di puntatori. ( premetto che è ancora Work in Progess).
Ringrazio in anticipo chiunque riesca a darmi qualche dritta!
Testo:
Scrivere un programma che generi con valori binari pseudo casuali una matrice A di dimensione
n x m . Stampare la matrice. Costruire un vettore B di puntatori di lunghezza n tàle che l’elemento
B
punti àd unà listà i cui elementi contengono l’indice di colonnà degli elementi non nulli dell’iesima
riga della matrice A. Stampare le n liste così ottenute.
Codice:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
typedef struct lista{
int* Vettore;
struct lista *next;
}t_lista_elem;
typedef t_lista_elem t_lista;
int inserisci_righe();
int inserisci_colonne();
int genera_numero();
int main(){
int r,c,n,i,j;
printf("Main\n");
r=inserisci_righe();
c=inserisci_colonne();
int matrixA[r][c];
t_lista *B[r];
printf("\nMatrice A: \n");
for(i=0;i<r;i++){
for(j=0;j<c;j++){
n=genera_numero();
matrixA[i][j]=n;
printf("%d\t",matrixA[i][j]);
if(n!=0){
B[i]=NULL;;
B[i]->Vettore[i]=j; // Si blocca qua.###################
B[i]=B[i]->next;
}
}
printf("\n");
}
return 0;
}
int inserisci_righe(){
int n;
printf("\nInserisci numero righe della matrice A: ");
scanf("%d",&n);
return n;
}
int inserisci_colonne(){
int n;
printf("\nInserisci numero colonne della matrice A: ");
scanf("%d",&n);
return n;
}
int genera_numero(){
int numero;
numero = (rand() % 2);
return numero;
}