No se que significa este error
Hola a todos les escrbo para ver que significa este error que me da en este programa sencillo aqui esta el codigo y abajo el error que me da.
#include<iostream.h>
#include<math.h>
#include<process.h>
class dimensiones{
public:
dimensiones();
void intro();
void unidim();
void dosdim();
int a, b, c, d, e, i, j, k, l, m, p;
private:
char o;
};
dimensiones x;
dimensiones::dimensiones(){
a=0;
}
void dimensiones::intro(){
do{
system("cls");
cout<<"Introduzca las dimensiones del arreglo: ";
cin>>p;
if(p==1){unidim();}
if(p==2){dosdim();}
cout<<"Desea realizar de nuevo la operacion (s/n)";
cin>>o;
}
while(o=='s'||o=='S');
}
void dimensiones::unidim(){
double A[99999];
cout<<"Introduzca el tamano de las columnas del arreglo: ";
cin>>a;
for(i=1;i<=a;i++){
A[i]=i;
cout<<"Dato("<<i<<") = "<<A[i]<<" ";
cout<<endl;
}
cout<<"Desea realizar la operacion de nuevo (s/n)";
cin>>o;
if(o=='s'||o=='S')
intro();
}
void dimensiones::dosdim(){
double A[99999][99999];
cout<<"Introduzca el tamano de las columnas del arreglo: ";
cin>>a;
cout<<"Introduzca el tamano de las filas del arreglo: ";
cin>>b;
for(i=1;i<=a;i++){
for(j=1;j<=b;j++){
A[i][j]=i+j;
cout<<"Dato("<<i<<","<<j<<") = "<<A[i][j]<<" ";
cout<<endl;
}
}
cout<<"Desea realizar la operacion de nuevo (s/n)";
cin>>o;
if(o=='s'||o=='S'){intro();}
}
void main(){
x.intro();
}
El error me dice Fatal error C1126: '2G' : automatic allocation exceeds FFÌFÇ_^ÃÁèàHt0èt+é5
Error executing cl.exe. // y me señala la llave que cierra la funcion unidim()..
Sin mas a que referirme me despido esperando su pronta respuesta y dandoles la gracias de antemano.
#include<iostream.h>
#include<math.h>
#include<process.h>
class dimensiones{
public:
dimensiones();
void intro();
void unidim();
void dosdim();
int a, b, c, d, e, i, j, k, l, m, p;
private:
char o;
};
dimensiones x;
dimensiones::dimensiones(){
a=0;
}
void dimensiones::intro(){
do{
system("cls");
cout<<"Introduzca las dimensiones del arreglo: ";
cin>>p;
if(p==1){unidim();}
if(p==2){dosdim();}
cout<<"Desea realizar de nuevo la operacion (s/n)";
cin>>o;
}
while(o=='s'||o=='S');
}
void dimensiones::unidim(){
double A[99999];
cout<<"Introduzca el tamano de las columnas del arreglo: ";
cin>>a;
for(i=1;i<=a;i++){
A[i]=i;
cout<<"Dato("<<i<<") = "<<A[i]<<" ";
cout<<endl;
}
cout<<"Desea realizar la operacion de nuevo (s/n)";
cin>>o;
if(o=='s'||o=='S')
intro();
}
void dimensiones::dosdim(){
double A[99999][99999];
cout<<"Introduzca el tamano de las columnas del arreglo: ";
cin>>a;
cout<<"Introduzca el tamano de las filas del arreglo: ";
cin>>b;
for(i=1;i<=a;i++){
for(j=1;j<=b;j++){
A[i][j]=i+j;
cout<<"Dato("<<i<<","<<j<<") = "<<A[i][j]<<" ";
cout<<endl;
}
}
cout<<"Desea realizar la operacion de nuevo (s/n)";
cin>>o;
if(o=='s'||o=='S'){intro();}
}
void main(){
x.intro();
}
El error me dice Fatal error C1126: '2G' : automatic allocation exceeds FFÌFÇ_^ÃÁèàHt0èt+é5
Error executing cl.exe. // y me señala la llave que cierra la funcion unidim()..
Sin mas a que referirme me despido esperando su pronta respuesta y dandoles la gracias de antemano.
Hola.
En primer lugar, en C/C++ los arreglos o matrices comienzan en la celda 0, no en la 1, luego donde escribes cosas del tipo:
for(i=1;i<=a;i++){
A[i]=i;
cout<<"Dato("<<i<<") = "<<A[i]<<" ";
cout<<endl;
}
debes cambiar la siguiente linea:
for(i=1;i<=a;i++){
por esta otra:
for(i=0;i<a;i++){
porque si no, te sales del arreglo o matriz, lo que puede dar error.
Teniendo en cuenta esto, revisa el programa, quizás ya funcione.
Un último dato, cuidado con las declaraciones como:
double A[99999][99999];
porque quizás sean demasiado grande. Con que pongas algo de 100x100 es suficiente, controla que no se pueda introducir un valor superior y ya está.
Un saludo,
Miguel Angel
www.maacera.com
En primer lugar, en C/C++ los arreglos o matrices comienzan en la celda 0, no en la 1, luego donde escribes cosas del tipo:
for(i=1;i<=a;i++){
A[i]=i;
cout<<"Dato("<<i<<") = "<<A[i]<<" ";
cout<<endl;
}
debes cambiar la siguiente linea:
for(i=1;i<=a;i++){
por esta otra:
for(i=0;i<a;i++){
porque si no, te sales del arreglo o matriz, lo que puede dar error.
Teniendo en cuenta esto, revisa el programa, quizás ya funcione.
Un último dato, cuidado con las declaraciones como:
double A[99999][99999];
porque quizás sean demasiado grande. Con que pongas algo de 100x100 es suficiente, controla que no se pueda introducir un valor superior y ya está.
Un saludo,
Miguel Angel
www.maacera.com
