Allora ragazzi, l'esercitazione continua e sto avendo alcuni problemi.
Uno di questi riguarda la creazione di un array di strutture. Riassumendo, il mio programma deve, avuta in input una matrice da file .txt, e da tastiera un valore K, creare un vettore di strutture, in cui per ogni elemento della matrice maggiore di K sia ha un record con due campi di tipo intero, rappresentanti l'indice della riga e della colonna dell'elemento considerato. La funzione inoltre deve restituire un valore booleano vero/falso a seconda che il vettore sia vuoto/pieno.E poi far stampare il vettore ottenuto su file. Il tutto dividendo in moduli.
Ora, ecco come avevo affrontato la cosa:
(header):
Codice PHP:
// File Header
const int MAX=50;
typedef int matrice[MAX][MAX];
void leggi_mat(matrice&, int&, const char*);
void crea_vett_ind(matrice, int, bool&);
(file delle funzioni):
Codice PHP:
// Funzioni
#include <iostream>
#include <cstdlib>
#include "lib.h"
using namespace std;
// Funzione per la lettura della matrice
void leggi_mat(matrice &M, int &riemp, const char *nomefile){
int i, j;
FILE* fp=fopen(nomefile,"r");
if (fp==0){
cout << "Errore nell'apertura del file!";
system("PAUSE");
exit(1);
}
fscanf(fp, "%d", &riemp);
for(i = 0; i < riemp; i++)
for(j = 0; j < riemp; j++)
fscanf(fp, "%d", &M[i][j]);
}
// Funzione per la creazione del vettore
void crea_vett_ind(const matrice M, int riemp, bool &tmp_trovato){
int n = 0, i, j, K;
struct indice {
int rig;
int col;
};
indice vett_ind[50];
cout << "\nInserisci il valore di K: ";
cin >> K;
for (i = 0; i < riemp; i++)
for (j = 0; j < riemp; j++)
if (M[i][j] > K){
vett_ind[n].rig = M[i];
vett_ind[n].col = M[j];
n++;
}
if (vett_ind[0].rig != M[0])
tmp_trovato = false;
else tmp_trovato = true;
}
(main):
Codice PHP:
// Main
#include <iostream>
#include <cstdlib>
#include "lib.h"
using namespace std;
int main(){
matrice mat;
int riemp;
bool trovato;
leggi_mat(mat, riemp, "mat.txt");
crea_vett_ind(mat, riemp, trovato);
if (trovato == true)
cout << "true";
else cout << "false";
system("PAUSE");
}
Manca la funzione per stampare il vettore, ma non è importante per ora.
Ovviamente non compila. 
Mi da:
Codice:
Compilatore: Default compiler
Building Makefile: "H:\DocZ\Uni (new)\Fondamenti di Informatica\Prove d'esame\Prova n. 3 risolta\Makefile.win"
Esecuzione di make...
make.exe -f "H:\DocZ\Uni (new)\Fondamenti di Informatica\Prove d'esame\Prova n. 3 risolta\Makefile.win" all
g++.exe -c lib.cpp -o lib.o -I"D:/Programmi/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"D:/Programmi/Dev-Cpp/include/c++/3.4.2/backward" -I"D:/Programmi/Dev-Cpp/include/c++/3.4.2/mingw32" -I"D:/Programmi/Dev-Cpp/include/c++/3.4.2" -I"D:/Programmi/Dev-Cpp/include" -I"D:/Programmi/SDL-1.2.14/include"
lib.cpp: In function `void crea_vett_ind(const int (*)[50], int, bool&)':
lib.cpp:44: error: invalid conversion from `const int*' to `int'
lib.cpp:45: error: invalid conversion from `const int*' to `int'
lib.cpp:49: error: ISO C++ forbids comparison between pointer and integer
make.exe: *** [lib.o] Error 1
Esecuzione terminata
Da cui deduco di non aver dichiarato per bene il vettore. È così? xd Mi potete dare una mano per piacere? xd Inoltre, il codice secondo voi dovrebbe funzionare o ho combinato altre porcate? Stavo pensando, invece di void crea_vett_ind dovrei dichiararla come bool e farle returnare tmp_trovato oppure va bene così?
Scusate la lunghezza e scusate se ho detto stronzate madornali ma il tempo stringe e potrei non ragionare correttamente. 
Grazie in ogni caso!