Problem mit dem Pointer auf ein Array

july

Erfahrenes Mitglied
Hallo zusammen,
ich habe ein Map mit 50 Elemente angelegt. Die Keys sind unsigned int und diese Keys möchte ich in ein Array packen. Leider bekomm ich einen Compiler-Fehler beim Versuchen in das Array was reinzuschreiben(error: lvalue required as left operand of assignment). Hat jemand eine Idee wie man das lösen kann? Vielen Dank im voraus.

C++:
int sortIds(MeldungsMap *melMap, unsigned int *idsortArr){
	unsigned int count =0, kategorie, test;
	MeldungsMap::iterator it;
	for(it=melMap->begin(); it != melMap->end(); it++)
	{
		kategorie =it->second.kat;
		if(kategorie !=Default_kat)
		{
			test = it->first;
			*(idsortArr+count)=  it->first;
			count++;
		}
	}
	return count;
}


Grüße July
 
Zuletzt bearbeitet von einem Moderator:
Moin,

wo kommt der Fehler :confused:
Vermutlich in Zeile 10 Deines Codes, oder :confused:

Weil das Konstrukt
Code:
*(idsortArr+count)
dann doch schon recht abenteuerlich ausschaut (Zeiger auf der Ergebnis einer Addition?) ! ! !

Allerdings ist mir auch nicht klar, was genau Du mit dem gesamten Code bewirken willst ...

Gruß
Klaus
 
hi Klaus,
ich hab quasi einen Array und sein Pointer übergebe ich an die Methode.
Mit der Zeile

*(idsortArr+count)= it->first;

möchte ich den Key in das array reinschreiben.

Grüße July
 
Zuletzt bearbeitet:
nur, dass
Code:
*(idsortArr+count)
KEIN Array ist :eek: ;)

Und somit auch kein gültiger Operand, dem "it->first" zugewiesen werden kann!

Gruß
Klaus
 
Danke hab jetzt den kopf der methode geändert in
int sortIds(MeldungsMap *melMap, unsigned int idsortArr[])
und drin entsprechend angepasst und jetzt funktionniert's.

Und typedef für MeldungsMap sieht so aus:
typedef map<unsigned int, meldung_t> MeldungsMap;

meldung_t ist eine selbstedefinierte Struktur...

Grüße July
 
Zurück