return char
-
hallo wie kann ich ein char array zurueckgeben?
void write() { FILE *datei = fopen("datei.txt", "a+"); fprintf(datei, "%s", user()); fclose(datei); } char user() { char computer_name[255]; DWORD size = 255; GetComputerName(computer_name, &size); return computer_name; //was hier machen, so geht es nicht... }
-
Du musst char* statt char zurückgeben, aber so wie du dir das vorstellst funktioniert das sowieso nicht.
computer_name ist lokal zur Funktion user, wird also am Ende dieser gelöscht. Der Zeiger den du zurückgibst zeigt daraufhin ins Nirvana.
Du musst den Speicher schon vorher anlegen:
void write () { ... char computer_name [256]; fprintf(datei,"%s",getUser(computer_name,256)); ... } void getUser (char* computerName, DWORD size) { GetComputerName(computerName,&size); }
Wobei man sich dann fragen könnte ob es überhaupt etwas bringt einen einzelnen Funktionsaufruf auszulagern.
MfG SideWinder