Buenas noches, soy nuevo en el foro y entre porque necesito ayuda en un trabajo de la universidad. No estoy pidiendo que me lo hagan, simplemente necesito que alguien sea tan amable de explicar porque salta error. El código es de una aplicación que permite ingresar letras y las muestra en una ListBox, realmente no se cuál es el problema y no he encontrado ninguna solución en internet asi que si pueden ayudarme estaría muy agradecido. El código está trabajado en Visual Studio 2010.
Este es el código de la clase
y esta parte es del código de la ventana
El código si compila, la validación para verificar si es una letra también, el problema surge cuando se ingresa una letra y salta un error que me pide cerrar la ventana. Si es necesaria otra parte del código por favor pídanmela. Gracias de antemano.
Este es el código de la clase
Código [Seleccionar]
#ifndef _GESTION_H_INCLUDED
#define _GESTION_H_INCLUDED
#include <iostream>
class CGestionCaracteres{
private:
int N;
char* Vec;
public:
CGestionCaracteres(){
int N = 0;
Vec = new char[N];
}
~CGestionCaracteres(){}
//
int getN(){
return N;
}
char* getVec(){
return Vec;
}
//
void AgregarElemento(char x){
//if (aux >= 65 && aux <= 90 || aux >= 97 && aux <= 122)
char* Aux = new char[N + 1];
if (ComprobarX(x) == false){
N++;
Vec[N - 1] = x;
}
else{
Aux[0] = x;
for (int i = 0; i < N; i++){
Aux[i + 1] = Vec[i];
}
delete Vec;
N++;
Vec = Aux;
delete Aux;
}
}
/* */
};
#endif _GESTION_H_INCLUDED
y esta parte es del código de la ventana
Código [Seleccionar]
#pragma once
#include "Gestion.h"
namespace GestionCaracteres {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for frmPrincipal
/// </summary>
public ref class frmPrincipal : public System::Windows::Forms::Form
{
private:
CGestionCaracteres* gestion;
public:
frmPrincipal(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
gestion = new CGestionCaracteres();
}
/* */
#pragma endregion
private: System::Void btnAgregar_Click(System::Object^ sender, System::EventArgs^ e) {
if (tbxAgregar->Text != ""){
char caracter = Convert::ToChar(tbxAgregar->Text);
if (caracter >= 65 && caracter <= 90 || caracter >= 97 && caracter <= 122){
gestion->AgregarElemento(caracter);
CargarLista();
}
else{
MessageBox::Show("Introduzca un valor valido.");
}
}
else{
MessageBox::Show("Introduzca una letra.");
}
}
void CargarLista(){
lbxLetras->Items->Clear();
for (int i = 0; i < gestion->getN(); i++){
lbxLetras->Items->Add((gestion->getVec()[i]).ToString());
}
}
};
}
El código si compila, la validación para verificar si es una letra también, el problema surge cuando se ingresa una letra y salta un error que me pide cerrar la ventana. Si es necesaria otra parte del código por favor pídanmela. Gracias de antemano.