ich verstehe folgendes triviale problem einfach nicht:
ich habe einen pointer auf ein char array welches nur mit 0 und 1 gefüllt ist. Jetzt will ich nur eine einzige stelle verändern im array - abe ich bekomme einen segfault:
C++:
flags = static_cast<char*>(alloca(rows)); ... class::method(char* flags, constint a) {
flags[a] = 1; }
es funktioniert einwandfrei wenn ich über jedes element drüberiteriere und jedes andere element mit 0 setze - aber nur eine einzige stelle verändern geht nicht?
Ich hoffe du tust das ganze nur wegens dem ueben mit arrays ! ^^ Unter c++ ist das eher schlecht was du tust, schon im ansatz ... flags = bool felder -> entweder in integer convertieren oder gleich std::bitset verwenden. Das ist um laengen komfortabler ... std::vector<bool> mag unter unstaenden auch ne alternative sein ....
Ciao ...
Bearbeitung von Windalf:
Post fixed...
Dieser Post wurde am 06.11.2006 um 12:05 Uhr von Windalf editiert.
es funktioniert einwandfrei wenn ich über jedes element drüberiteriere und jedes andere element mit 0 setze - aber nur eine einzige stelle verändern geht nicht?
Zitat von RHBaum:
nein .... aber was geht, das ganze array mit einem mal auf 0 setzen und den einen wert nachtraeglich auf 1 korrigieren ...
@RH Was das "nein..." als Antwort auf die von mir nochmal als Zitat eingefügte Frage gemeint ? Wieso ist das klar, dass man zwar über das Feld iterieren und _jedes_ Element setzen kann, aber nicht nur _eines_ ?
Wahrscheinlich verstehe ich das nicht, weil ich schon die Frage mit dem Quellcode nicht verstehe :-( -- Reden ist Schweigen und Silber ist Gold.