
Originariamente inviata da
Scara95
Nessun problema. Nota che io ti ho offerto 2 coppie di funzioni in ogni caso: una usa malloc e free, l'altra new e delete.
Se c'è qualcosa che non capisci chiedi pure (:

Ciao scara! Il tuo programma funziona correttamente, ho preferito utilizzare le funzioni con new int e delete che, a mio parere, sono più semplici da ricordare e da scrivere. Ho continuato il programma, ora è a buon punto, ho aggiunto una funzione che mi calcola l'indice minimo nelle colonne, te lo faccio vedere
codice:
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int **readMat(int**&m, size_t& size)
{
ifstream in("mat.txt");
in >> size;
m = new int *[size];
for(int i = 0; i < size; ++i)
m[i] = new int[size];
for(int i = 0; i < size; ++i)
for(int j = 0; j < size; ++j)
in >> m[i][j];
return m;
}
void freeMat(int **&m, size_t size) {
for(int i = 0; i < size; ++i)
delete[] m[i];
delete[] m;
}
int calc_ind_min(int **&m,int size,int r)
{
int min=m[r][0];
int i,indmin=0;
for (i=0;i<size;i++)
{
if (m[r][i]<min)
{
min=m[r][i];
indmin=i;
}
}
cout<<indmin;
return indmin;
}
int main(void) {
size_t size;
int **m;
readMat(m, size);
for(int i = 0; i < size; ++i) {
for(int j = 0; j < size; ++j)
cout << m[i][j] << '\t';
cout << endl;
}
int r;
for(r=0;r<size;r++)
{
calc_ind_min(m,size,r);
}
freeMat(m, size);
return 0;
}
Però ti vorrei chiedere alcune cose. Nel programma mi è quasi tutto chiaro, devo solo capire, qual'è precisamente la funzione di new int? La funzione di delete è quella di liberare la memoria altrimenti si appesantisce il sistema, ma new int, prima di size nella prima funzione, a che serve precisamente?
E poi, size_t che tipo è? Ha la stessa funzione di unsigned int? Grazie per il tuo tempo!!