Ich habe den folgenden Code, in dem ein Array dynamisch in einer Funktion deklariert wird. Das folgende Programm kompiliert perfekt in Visual Studio 2013 jedoch während der Laufzeit der Code Pausen während des Druckens das Array mit dem folgenden Fehlercode:Unbehandelte Ausnahme bei 0x771CC7C9 (ntdll.dll)
Kritischer Fehler erkannt c0000374 WaveEquation1D.exe einen Breakpoint ausgelöst hat. Erste-Chance-Ausnahme bei 0x771CC7C9 (ntdll.dll) in WaveEquation1D.exe: 0xC0000374: Ein Heap wurde beschädigt (Parameter: 0x771F8890).
Unbehandelte Ausnahme bei 0x771CC7C9 (ntdll.dll) in WaveEquation1D.exe: 0xC0000374: Ein Heap beschädigt wurde (Parameter: 0x771F8890).
Was ist los? Bitte helfen
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <vector>
using namespace std;
int solver(double i, double v, double c, double L, int Nx, double C1, double t);
int solver(double i, double v, double c, double L, int Nx, double C1, double t)
{
double *msh = new double(Nx);
double delta = L/Nx;
int count = 0;
for (int i = 0; i <= Nx; i++)
{
msh[i] = 0.0;
}
for (int i = 0; i <= Nx; i++)
{
msh[i] += delta*count;
count++;
}
for (int i = 0; i <= Nx; i++)
{
cout << msh[i] <<endl;
}
delete[] msh;
//
return 0;
}
int main()
{
cout << "Hello"<<endl;
int size;
int j;
j = solver(1, 0, 0, 20.0, 20, 0, 1);
_getch();
return 0;
}
Diese Schleife Bedingung ist falsch: 'for (int i = 0; i < = Nx; i ++) '. Ihr Array hat 'Nx' Elemente, Sie drucken' Nx + 1' – Ari0nhh