Wurde Code für eine Zuordnung schreiben, um ganze Zahlen als Eingabe zu nehmen und sie in ein Array zu drucken.C++ Dump Stack-Trace zu * .exe.stackdump
Ich putze bis alle meine Zeiger auf, als ich sagen kann, aber ich erhalte immer den Laufzeitfehler:
1 [main] new 3444 cygwin_exception::open_stackdumpfile: Dumping stack trace to new.exe.stackdump
Körper Code:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int array[10];
int * p = array;
int *readNumbers()
{
int i=0;
for(i=0;i<10;i++)
{
string number;
int numb;
cout << "enter digit " << i << " of 10" << endl;
getline(cin, number);
istringstream (number) >> numb;
array[i]=numb;
}
return p;
delete p;
}
void printNumbers(int *numbers,int length)
{
int i;
for(i=0;i<length;i++)
{
cout << i << " " << *(numbers+i) << endl;
}
}
und die Haupt Anrufcode:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
extern int *readNumbers();
extern void printNumbers(int *,int);
int main()
{
int * q = readNumbers();
printNumbers(q,10);
delete q;
return 0;
}
Also nur auf der Suche nach einer Lösung für den Stapel dump ... Auch ich bin sicher, dass die Methode, die ich verwendet, um die string number
zurückgegeben von cin
auf die in array[10]
enthaltenen Werte anzuwenden ist nicht das, was die Frage war, so dass alle Hinweise darauf wäre großartig. Danke
Die beste Lösung hängt von Ihrer Entwicklungsumgebung ab, also müssen Sie mehr über Ihr Betriebssystem, Compiler, IDE usw. erklären. – nodakai
Randbemerkungen: 'delete p;' nach 'return p;' wird nie ausgeführt. Warum würdest du etwas löschen, das sowieso nicht mit new zugeteilt wurde? Das gilt tatsächlich für 'delete q;' in Ihrer Hauptfunktion, die meiner Meinung nach die Ursache Ihres Absturzes ist. –
Sie sollten q in Ihrem Hauptaufrufcode nicht löschen, da q auf Array zeigt – stan