
04/03/2012, 07:53
|
| | Fecha de Ingreso: marzo-2012
Mensajes: 2
Antigüedad: 13 años Puntos: 0 | |
Heap OverLap en C++ Saludos,
Tengo que hacer un programa para la U que me calcule N notas y las guarde en un arreglo y saque el promedio usando memoria dinamica. Hize este codigo para poder agregar las notas a el arreglo y todo funciona bien, pero cuando intento salir me da un error y dice que la variable original de las notas esta corrupta.
Código:
#include <iostream>
using namespace std;
int menu();
void ingreso(int *i, int *notas , int *n, int *p , int *q);
int main(){
int opcion , *i , contador = 0, contador_tot=0, *p , *q , contador_impr=0;
i = &contador ;
p = &contador_tot ;
q = &contador_impr ;
int notas[10];
int *n;
n = new int;
while( (opcion =menu()) != 3 ){
switch(opcion){
case 1:
ingreso(i , notas , n, p, q);
break;
case 2:
if( *p > 10){
for(int x=0 ; x < *q ; x++){
cout << n[x] << " " ;
}
for(int x=0 ; x < *i ; x++){
cout << notas[x] << " " ;
}
}
else if( *p <= 10) {
for(int x=0 ; x < *i ; x++){
cout << notas[x] << " " ;
}
break;
default:
break;
}
}
}
return 0;
}
int menu(){
int opcion=0;
cout << " Seleccione una opcion: " << endl << "1.-Ingresar Notas " << endl << "2.-Imprimir notas y promedio " << endl << "3.- Salir" << endl;
cin >> opcion;
return opcion;
}
void ingreso(int *i, int *notas , int *n, int *p , int *q){
if( *i >= 10 ){
for(int a=0; a < 11 ; a++){
n[a+(*q)] = notas[a];
}
for(int a=0; a < 11 ; a++){
notas[a] = 0;
}
*i=0 ;
(*q)+=10 ;
}
cout << "Ingresa la nota:" ;
//cin >> notas[(*i)];
notas[(*i)] = (*p);
(*p)++;
(*i)++;
if(*p == 100){
}
cout << endl;
}
Gracias de antemano |