Scusate mi spiegate l'inefficenza del primo programma rispetto al secondo?
codice:# include <iostream> # include <fstream> using namespace std; int main(int narg, char * * args, char * * env) {int *unidim = new int[1000000], **bidim = new int * [1000], i; for(i=0; i < 1000; i++) bidim[i] = new int[1000]; if(narg < 2) return 1; ifstream uno(args[1]); if(!uno) return 2; uno . read((char *)unidim, 1000000 * sizeof(int)), uno . seekg(0, ios :: beg); for(i=0; i < 1000; i++) uno . read((char *)bidim[i], 1000 * sizeof(int)); uno . close(); cout << bidim[2][200] << ' ' << unidim[2200] << endl; // si osservi che 2200 = 2 * 1000 + 200 }codice:# include <iostream> # include <fstream> using namespace std; int main(int narg, char * * args, char * * env) {int *unidim = new int[1000000], **bidim = new int * [1000], i; //for(i=0; i < 1000; i++) bidim[i] = new int[1000]; if(narg < 2) return 1; ifstream uno(args[1]); if(!uno) return 2; uno . read((char *)unidim, 1000000 * sizeof(int)); //uno . seekg(0, ios :: beg); for(i=0; i < 1000; i++) //uno . read((char *)bidim[i], 1000 * sizeof(int)); bidim[i] = unidim + i*1000; uno . close(); cout << bidim[2][200] << ' ' << unidim[2200] << endl; // si osservi che 2200 = 2 * 1000 + 200 }

Rispondi quotando

