Gast
#862740
Hallo,
ich hoffe ich bin nicht im völlig falschen Forum.
Folgendes Problem:
Ich habe für die Bearbeitung von Daten structs angelegt und diese werden
bei Programmstart mit Werten aus einer Datei geladen. Das funktioniert
wunderbar.
Nun möchte ich im Laufe der Abarbeitung des Programms auf diese Daten
zugreifen.
Leider liegen die Werte nicht mehr so wie abgelgt vor. Scheinbar.
Kontrolliere ich den Inhalt jedes Feldes gleich nach übertragen in die
Variable mit einer Konsolenausgabe ist der Wert i.O.
Kontrolliere ich den gleichen Wert nach auslesen aller Werte des
Structs, leigen falsche Werte vor. Zur Verdeutlichung der Quellcode
dazu:
struct profil_setup
{
int id_modul;
int led_nummer;
char led_art[2];
int wert;
}settings[300];
struct profile_basics
{
char name[20];
int anzahl_led;
int time_to_next;
int direction;
struct profile_setup settings[300];
} profile[20];
//Funktion zum einlesen der Daten wird zum Programmstart aufgerufen
//Kontrollausgabe ergibt richtigen Inhalt
//nun werden die Abgelegten Daten in Variablen gelegt und durch eine
//Funktion verwendet. Zur Kontrolle werden diese Variablen nochmals
//ausgegeben:
for(i=0;i<20;i++)
{
if((strcmp(profile[i].name,dateiname)) ==0)
{
for(y=0;y<profile[i].anzahl_led;y++)
{
modul_id = profile[i].settings[y].id_modul;
//dieser Wert stimmt immer
nmr= profile[i].settings[y].led_nummer;
//an dieser stelle mittels printf() stimmt der Wert für nmr noch
value = profile[i].settings[y].wert;
//an dieser stelle mittels printf() stimmt der Wert für value noch
led_art = profile[i].settings[y].led_art;
//dieser Wert stimmt immer
//erfolgt die gleiche Ausgabe an dieser Stelle hat der Wert für
//nmr den Wert des value
//es scheint irgendwie ein Überschreiben des Wertes
//nmr durch den Wert value zu passieren. Woher könnte das
//kommen?
}
}
}
Ist das struct falsch angelegt oder gibt es da Probleme bei der
Speicherzuweisung? Ich bin nicht "Der" Programmierer..daher meine Frage
dazu.
Vielen Dank schonmal für die Antworten
Thomas