Ir para conteúdo
Fórum Script Brasil

DH Ferraz

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que DH Ferraz postou

  1. Olá, tive essa questão em uma prova de C++ e ainda não estou conseguindo resolver o problema. A idéia é criar um vetor com x posições(no meu caso coloquei 5 pra teste), o usuário preenche essas 5 posições e após isso o sistema pergunta se ele deseja cadastrar mais uma posição no vetor, se SIM o vetor é incrementado em mais uma posição e o usuário digita o valor pra essa nova posição, se NÃO o sistema imprime o vetor. Está funcionando apenas para o primeiro incremento, ou seja, tenho o vetor começando em 5 posições, preencho as 5, informo que quero mais uma, ele incrementa uma posição a mais deixando o vetor com 6 posições, informo o valor pra 6ª posição do vetor, mas se informo que quero continuar aumentando o vetor, ou seja, torna-lo um vetor de 7 posições, o sistema da erro. Segue o código: #include <iostream> using namespace std; void main(){ int tam = 5; char op; bool ret = true; float * ptr = new(nothrow) float[tam]; for(int i = 0; i < tam; i++){ cout << "Valor da posicao[" << i << "]: "; cin >> ptr; } cout << endl; do{ cout << "Deseja inserir mais algum valor pro vetor (S/N)?"; cin >> op; cout << endl; if(op == 'S' || op == 's'){ //CRIA UM NOVO VETOR COMO AUX float * aux = new(nothrow) float[tam]; //COPIA PARA O VETOR AUX O CONTEUDO DO VETOR PTR for(int j = 0; j < tam; j++){ aux[j] = ptr[j]; } //DELETA E CRIA NOVAMENTE O VETOR ORIGINAL delete []ptr; ptr = new(nothrow) float[tam++]; //INSERE OS DADOS DO VETOR AUX NOVAMENTE NO VETOR PTR for(int k = 0; k < tam - 1; k++){ ptr[k] = aux[k]; } //DELETA O VETOR AUX delete []aux; //SOLICITA AO USUARIO O VALOR DA NOVA POSICAO for(int l = 0; l < tam; l++){ if(ptr[l] < 0){ cout << "Valor da posicao[" << l << "]: "; cin >> ptr[l]; } } cout << endl; } else { //IMPRIME O VETOR FINALIZADO for(int m = 0; m < tam; m++){ cout << ptr[m] << endl; } ret = false; cout << endl; } } while(ret == true); } O erro informado é esse: HEAP CORRUPTION DETECTED: CTR detected that the application wrote to memory after end of heap buffer Podem me ajudar? Sou novo no Fórum, espero ter feito tudo corretamente. Abraço!
×
×
  • Criar Novo...