Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Array size too large!  (Citit de 2681 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
chera_lary
De-al casei
***

Karma: -2
Deconectat Deconectat

Mesaje: 106



Vezi Profilul
« : Octombrie 07, 2008, 00:56:22 »

Salut!
Am incercat sa declar un tablou int[250][250], dar nu reusesc sa ii aloc memoria prin nicio metoda gasita pe net. Am citit si despre malloc, si calloc dar tot nu reusesc! As dori sa imi lasati un exemplu in care este declarat un tablou care depaseste memoria.
Va multumesc! Smile
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #1 : Octombrie 07, 2008, 09:29:58 »

In primul rand, treci pe un compiler pe 32 de biti. (scapa de borland)
O alta metoda de declarare:

Cod:
int ** a = new int* [250];
for ( int i = 0; i < 250; i++ )
          a[i] = new int [250];

delete [] a;

Sper sa nu fi gresit ceva.
Memorat

vid...
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #2 : Octombrie 07, 2008, 10:54:46 »

sau
Cod:
int ** a ;
a=(int**)malloc(251*sizeof(int));
for ( int i = 0; i < 250; i++ )
          a[i] = malloc(251*sizeof(int));

dar vezi ca nu ti le face si "0" : au valori random. Ca sa le faci 0 fa asa:

uite un mic program
Cod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int **a;
int main(void){
int i,j;
freopen("out.txt","w",stdout);
a=(int**)malloc(251*sizeof(int));
for (i=1;i<=250;++i)
a[i]=(int*)malloc(251*sizeof(int));
for (i=1;i<=250;++i)
memset(a[i],0,251*sizeof(int));
for (i=1;i<=250;++i){
for (j=1;j<=250;++j)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
« Ultima modificare: Octombrie 07, 2008, 11:28:34 de către Pripoae Teodor Anton » Memorat
chera_lary
De-al casei
***

Karma: -2
Deconectat Deconectat

Mesaje: 106



Vezi Profilul
« Răspunde #3 : Octombrie 07, 2008, 18:37:58 »

Functioneaza! Multumesc!
Dar daca as vrea sa atribui un numar foarte mare unei variabile de exemplu a =10000000000; Cum ar trebui sa aloc memoria?
Memorat
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #4 : Octombrie 07, 2008, 18:53:37 »

Declari variabile long long (valabile numai pe un compiler de 32bits). O variabila declarata long long are 8 bytes.

Poti sa incerci si in borland dar mai mult ca sigur ca nu merge
Cod:
#include <iostream.h>
int main(){
cout<<sizeof(long long)<<"\xA";
return 0;}

Daca afiseaza pe ecran 8 atunci e ok, daca nu atunci nu ai cei face.
« Ultima modificare: Octombrie 28, 2008, 17:19:45 de către Harabula Adrian » Memorat
chera_lary
De-al casei
***

Karma: -2
Deconectat Deconectat

Mesaje: 106



Vezi Profilul
« Răspunde #5 : Octombrie 07, 2008, 19:15:42 »

Ok! Multumesc!  Very Happy Pe long long am obtinut 4 in schimb pe long double am obtinut 10;  Rolling Eyes
« Ultima modificare: Octombrie 07, 2008, 19:21:52 de către CHERA Laurentiu » Memorat
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #6 : Octombrie 13, 2008, 18:07:34 »

Declari variabile long long (valabile numai pe un compiler de 32bits). O variabila declarata long long are 8 biti.
Cred ca te referi la 8 octeti!
Memorat
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #7 : Octombrie 28, 2008, 17:17:54 »

Declari variabile long long (valabile numai pe un compiler de 32bits). O variabila declarata long long are 8 biti.
Cred ca te referi la 8 octeti!

Da, scuze. 8 octeti/bytes. am modificat

Cod:
long long ago; /* in a galaxy far far away */
Tongue
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines