Hallo Welt
Ich habe, wie der Titel schon sagt, ein Problem mit den Standard Template Library maps.
Die von mir erwartete Ausgabe:
Und die Tatsächliche:
Ich schliesse daraus, dass die Map kein Speicher, sondern eine Art Linker ist, die nur auf andere Speicheradressen verweist.
Wie kann ich das verhindern? Gibt es eine Alternative zur map, oder gibt es für die map eine eigene Funktion, die direkt Werte speichert? Oder wisst ihr, wie man trotzdem den "String"-Speicher weiterverwenden kann?
Gruss
cwriter
Ich habe, wie der Titel schon sagt, ein Problem mit den Standard Template Library maps.
C++:
#include "stdio.h"
#include "stdlib.h"
#include "windows.h"
#include <map>
using namespace std;
int main()
{
char String[256];
strcpy(String,"Test");
map< int, char* > MeineMap;
map< int,char* >::iterator it;
MeineMap.insert(make_pair(0,String));
printf("%s\n",MeineMap);
strcpy(String,"Test2");
printf("%s\n",MeineMap);
getch();
return 0;
}
Die von mir erwartete Ausgabe:
Code:
Test
Test
Und die Tatsächliche:
Code:
Test
Test2
Ich schliesse daraus, dass die Map kein Speicher, sondern eine Art Linker ist, die nur auf andere Speicheradressen verweist.
Wie kann ich das verhindern? Gibt es eine Alternative zur map, oder gibt es für die map eine eigene Funktion, die direkt Werte speichert? Oder wisst ihr, wie man trotzdem den "String"-Speicher weiterverwenden kann?
Gruss
cwriter