Problem mit struct
-
Hallo, kann mir bitte jemand weiterhelfen...
Ich definiere einen Stuktur, kann aber nacher keine char Werte eingeben.struct Daten{ char Name[5]; int Alter;}; void main(){ Daten meineDaten; meineDaten.Alter=20; meineDaten.Name="Anna"; cout<<meineDaten.Name<<endl; cout<<meineDaten.Alter<<endl;}Der Fehler den er mir angibt ist:
error C2440: '=': 'const char [5]' kann nicht in 'char [5]' konvertiert werden
Was kann ich machen?
Danke
-
Du solltest das Problem mit strcpy lösen:
#include <string.h>
struct PLAYER
{
char Name[10];
};void main()
{
PLAYER p;
strcpy(p.Name, "Fred";
}Pass aber unbedint AUF !!! das der NAME nicht GRÖßER als dein Arry ist --> Sonst Bufferoverflow
-
Tc++H schrieb:
Du solltest das Problem mit strcpy lösen:
#include <string.h>
struct PLAYER
{
char Name[10];
};void main()
{
PLAYER p;
strcpy(p.Name, "Fred";
}Pass aber unbedint AUF !!! das der NAME nicht GRÖßER als dein Arry ist --> Sonst Bufferoverflow
oder nimm strncpy.
Oder wenns zur wahl steht std::string statt char[]
-
Was isn der unterschied zwischen strncpy & strcpy ???
-
Tc++H schrieb:
Was isn der unterschied zwischen strncpy & strcpy ???
char *strncpy( char *to, const char *from, size_t count ) != char *strcpy( char *to, const char *from )
Caipi
-
Vielen Dank,
es hat funktioniert.
Danke
-
Ich mag Stringroutinen nicht so sonderlich, ABER man kommt einfach nicht drum, ist auch gut so.