Array wird richtig Definiert - beim Aufruf aber falsche Werte
-
Hallo allerseits,
Ich habe folgendes Problem bei dem mir vielleicht jemand helfen kann.
Ich habe alles etwas reduziert für das wesentliche. Grundlegend habe ich 2 Methoden in der Klasse Sensor. (messen und vergleichen). Wenn ich in messen meine Arraywerte zuweise, funktioniert alles. (Habe in der Methode selbst noch eine Ausgabeschlaufe gemacht für den Test). Nun verwende ich aber dieses beschriebene Array in der Methode "Vergleichen". Wenn ich da das array erneut auslese ohne irgendwelche anderen Code, kommen werte wie 8.2345e-215, als ob etwas nicht richtig eingelesen wurde. Ich kenne das nur, wenn es sich um einen Falschen Typ oder ähnliches handelt. Hat jemand eine Idee?
Vielen Dank im Voraus
Beispiel:
void Sensor::messen(){ for(int i=0;i<this->anzMW;i++) { this->rw_daten[i]=5; } } void Sensor::vergleichen(){ for(int i=0;i<5;i++){ cout << this->rw_nw[i] << endl; } }
-
Michi-c++ schrieb:
Hallo allerseits,
Ich habe folgendes Problem bei dem mir vielleicht jemand helfen kann.
Ich habe alles etwas reduziert für das wesentliche. Grundlegend habe ich 2 Methoden in der Klasse Sensor. (messen und vergleichen). Wenn ich in messen meine Arraywerte zuweise, funktioniert alles. (Habe in der Methode selbst noch eine Ausgabeschlaufe gemacht für den Test). Nun verwende ich aber dieses beschriebene Array in der Methode "Vergleichen". Wenn ich da das array erneut auslese ohne irgendwelche anderen Code, kommen werte wie 8.2345e-215, als ob etwas nicht richtig eingelesen wurde. Ich kenne das nur, wenn es sich um einen Falschen Typ oder ähnliches handelt. Hat jemand eine Idee?
Vielen Dank im Voraus
Beispiel:
void Sensor::messen(){ for(int i=0;i<this->anzMW;i++) { this->rw_daten[i]=5; } } void Sensor::vergleichen(){ for(int i=0;i<5;i++){ cout << this->rw_nw[i] << endl; } }Tust du nicht...
-
Huch, ja da hab ich mich in der eile im Code vertippt. Aber das Problem ist schon so gemeint,
in 2 Methoden, die gleiche Variable aber mit unterschiedlichen Werten.
void Sensor::messen(){ for(int i=0;i<5;i++){ this->rw_daten[i]=5; } } void Sensor::vergleichen(){ for(int i=0;i<5;i++){ cout << this->rw_daten[i] << endl; } }
-
Ich hab nun mal folgende Klasse, sollte grob identisch mit deiner sein, geschrieben und es weißt keine Fehler auf:
#include <iostream> class Sensor { private: int anzMW; int *rw_daten; public: Sensor(int); ~Sensor(); void messen(); void vergleichen(); }; Sensor::Sensor(int anzahl) : anzMW(anzahl), rw_daten(new int[anzMW]) { } Sensor::~Sensor() { delete[] rw_daten; } void Sensor::messen() { for(int i = 0;i < anzMW; i++) this->rw_daten[i] = 5; } void Sensor::vergleichen() { for(int i = 0;i < anzMW; i++) std::cout << this->rw_daten[i] << std::endl; } int main() { Sensor s(5); s.messen(); s.vergleichen(); }Zeig mal deine Klasse, so findet man den Fehler bestimmt eher.
-
ola,

Ich habe nun ca. 7 Stunden nach Fehlern gesucht wegen der Datenverarbeitung. Nun wollte ich die Code auf das Problem zusammenschneiden dass es hier Übersichtlich wird und bin dabei auf eine Falsche Wertzuweisung in einem Array gestossen.
Entschuldigt für die Umstände *schäm*
Trotzdem vielen Dank für die Hilfestellungen
Mit freundlichen Grüssen
Michi :xmas1: