Nochmal ein Problem mit Zeigern
Von: , Frage gestellt am Mo, 21. Mai 2007
Hallo nochmal. Dieses Programm zeigt beim Versuch es zu compilieren eine Fehlermeldung, in der eine EAValueException erwähnt wird. Mir ist aufgefallen, dass ich nur bei einer Schrittweite von < 0.8 diese Exception bekomme. Zudem werden mir nur 8 y-Werte zu den 8 x-Werten angezeigt.
Vielleicht könnt ihr mir sagen, warum es hier zu einer Zugriffsverletzung bei einer Adresse kommt. Vielen Dank im Voraus!
//---------------------------------------------------------------------------
#include <iostream.h>
#include <condefs.h>
#include <conio.h>
void funktionswerte(float *table_x,float *table_y,float ug,float og, float step)
{
* table_x = ug; // x - Wert in die Tabelle packen
* table_y = pow(ug,2);
cout << "x= "<<(*table_x)<<" y= "<<(*table_y)<<endl;
table_x=table_x+1; // setze Pointer auf nächstes Feld (x)
table_y=table_y+1; // setze Pointer auf nächstes Feld (y)
ug = ug + step; // neue Untergrenze
while (ug <= og) // solange bis die Obergrenze erreicht ist
{
* table_x = ug;
* table_y = pow(ug,2);
cout << "x= "<<(*table_x)<<" y= "<<(*table_y)<<endl;
table_x=table_x+1; // setze Pointer auf nächstes Feld (x)
table_y=table_y+1; // setze Pointer auf nächstes Feld (y)
ug = ug + step;
}
}
int main()
{
const int maximum=10000;
float untergrenze=-3;
float obergrenze=3;
float schrittweite=0.6;
static float wertetabelle_x[maximum];
static float wertetabelle_y[maximum];
// adressübergabe an die funktion
funktionswerte(& wertetabelle_x[maximum],& wertetabelle_y[maximum], untergrenze, obergrenze, schrittweite);
getch();
return 0;
}
//---------------------------------------------------------------------------
