Sezioni principali
Forum
Offerte lavoro
Corsi
Articoli
Toggle sign-in
Toggle search
Forum
Pubblica Annunci Lavoro ICT
Iscrizione Candidati
Login
Cerca In
Offerte lavoro
Forum
Corsi formazione
Articoli
Home
Offerte di lavoro ICT
Area Candidati
Offerte di lavoro
Iscrizione Candidati
Area Aziende
Iscrizione Aziende
Aziende iscritte
Forum sviluppatori
Generale
Indice Forum
Cerca nel Forum
Messaggi recenti
Registrazione
Area Software
Ingegneria del software
Assembly
C/C++
Delphi
Java
Matlab e Simulink
Microsoft .NET
Python
Area Web
HTML e CSS
JavaScript
Angular
ASP.NET
PHP
Webmaster
Mobile
Android
Apple iOS e Objective-C
Windows Phone
Database
Progettazione Database
Microsoft Access
MySQL e MariaDB
Oracle
PostgreSQL
SQL Server
Excel
Hardware & OS
Microsoft Windows
Linux
Hardware e Reti
Sistemi Embedded e Microcontroller
Corsi di informatica
Eventi ICT
Articoli
Consulenza
Consulenza informatica e sviluppo software
Utility
Il tuo Indirizzo IP
Home
Forum
C/C++
Nuovi posts
Cerca
Iscriviti
Allocazione memoria [Matrice][Bidimensionale] dinamica c++
di
Anonimizzato6081
il
22 mar 2010, 08:03
Condividi
Cerca
Ricerca avanzata
2 risposte
/
Anonimizzato6081
Utente anonimizzato
Allocazione memoria [Matrice][Bidimensionale] dinamica c++
22 mar 2010, 08:06
Salve a tutti ho un problemino a riguardo l'allocazione della
memoria dinamica su matrice bidimensionale. Grazie.
Ho creato un'applicazione dove devo allocare in memoria "dinamica" una matrice
bidimensionale di moltissimi record [Righe] e con un massimo di 20 Colonne [Vettori].
E' un programma per lo sviluppo delle combinazioni ,il famoso calcolo combinatorio.
Il punto è che non riesco a controllare l'errore di memoria esaurita il programma
va in crash.
Ho il PC con una memoria Ram libera di circa 1 Giga riesco a sviluppare circa 25 numeri in
undicina.
Mi spiego meglio postando il codice c++.
#define NULL 0
// alloco la matrice bidimensionale
int **Combinazione = new int *[Numero_Righe];
for (__int64 i = 0; i < Numero_Righe; i++){
Combinazione
= new int[Lunghetta]; // Lunghetta rappresenta le 20 colonne
if(Combinazione == NULL) // Questo frammento di codice non fà il suo dovere perchè?
cout <<"Memoria insufficente\n";
}
// Ho preso spunto da questo frammento di codice scritto in un libro
// che usa una matrice monodimensionale
#define NULL 0
#define SIZE 512
int *Memory;
Memory=new int[SIZE];
if (Memory == NULL)
cout << "Memoria insufficente \n";
else
cout << "Memoria allocata \n";
delete(Memory);
2 Risposte
/
Anonimizzato6541
Utente anonimizzato
Re: Allocazione memoria [Matrice][Bidimensionale] dinamica c++
22 mar 2010, 10:43
if(Combinazione == NULL) // Questo frammento di codice non fà il suo dovere perchè?
Cosa sarebbe 'Combinazione' ? O meglio cosa pensi possa essere?
Consiglio di allegare l'intero codice compilabile per un debug approfondito.
Saluti,
Max
/
Anonimizzato6081
Utente anonimizzato
Re: Allocazione memoria [Matrice][Bidimensionale] dinamica c++
29 mar 2010, 05:02
Ciao a tutti voglio darmi la risposta all'errore che ho
commesso nel codice che ho scritto in questa maniera possa essere
di aiuto a qualcuno in futuro.
Cominciamo....la dichiarazione corretta di una matrice "bidimensionale" si
si srive così.
int Colonne =10 ;
int Righe =5;
//Ricordo che righe è in verticale dunque...
// 0 Righe
// 1 Righe
// 2 Righe
// 3 Righe
// ecc ecc...
// alloca la matrice c++
int **Combinazione = new int *[Righe];
if (Combinazione==NULL) // Controlla se la memoria (dinamica) disponibile è sufficente
cout << "Memoria insufficente\n";
for (int i = 0; i < Righe i++)
Combinazione
= new int [Colonne];
ciao Tipotalpo:
Devi
accedere
o
registrarti
per scrivere nel forum
2 risposte
Condividi