#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define M 4
#define N 5
struct list {
float vec[M];
struct list* next_ptr;
};
float mat[M][N];
int i, k = 0;
int j = N;
void init(struct list **ptrptr);
void pre_insert(struct list **ptrptr, float vec[M]);
void from_mat(float vec[M], struct list **ptrptr);
main() {
struct list* list;
init(&list);
float vec[M];
do {
printf("\nInseriamo i valori nella matrice\n");
for (j = (N-1); j > (-1); j = j - 1) {
for (i = 0; i < M; i++) {
printf("\nvalore matrice [%d] X [%d]\n", i, j);
scanf("%f", &mat[i][j]);
}
}
from_mat(list, vec);
}
}
void init(struct list **ptrptr) {
*ptrptr = NULL;
}
void pre_insert(struct list** ptrptr, float vec[M]) {
struct list* tmp_ptr;
tmp_ptr = *ptrptr;
*ptrptr = (struct list*)malloc(sizeof(struct list));
for (i = 0; i < M; i++)
(*ptrptr)->vec[i] = vec[i];
(*ptrptr)->next_ptr = tmp_ptr;
printf("%f", vec[M]);
}
void from_mat(float vec[M], struct list **ptrptr) {
for(j = N-1; j >(-1); j=j-1){
for (i = 0; i < M; i++){
vec[i] = mat[i][j];
}
pre_insert(ptrptr, vec);
}
}
Quando richiamo nel main la funzione from_mat, mi dice
Avvisi:
-'funzione': tipi non compatibili. Da 'list *' a 'float *'
-'funzione': 'list **' differisce da 'float [2]' nei livelli di riferimento indiretto
-'from_mat': tipi diversi tra il parametro 2 formale e quello effettivo
Sbaglio sicuramente qualcosa nella chiamata, i termini sono tutti di tipo float