Wie kann man einen String/ein Char-Array in C++ per Pointer verändern lassen?

... komplette Frage anzeigen

2 Antworten

Das was du bei der Funktion NameAbfrage(...) machst ist folgendes:
Du übergibst zwar den Wert, der in deinem char drin steht, dieser ist dann aber nur eine lokale Variable.

Du könntest es entweder so machen, dass die Funktion den Wert zurück gibt, oder, da du Pointer haben willst, du übergibst es als Pointer:

void NameAbfrage(char &pName)
{
...
}

Das sorgt dafür, dass du nicht den Wert übergibst, der in deinem char steht, sondern die Adresse im Speicher. Wenn du pName dann bearbeitest, änderst du nicht die übergebene Variable, sondern direkt dein char Arrai aus der main-Funktion.

Achja noch so als Randinfo: Funktionsnamen schreibt man normalerweise, wie Variablen, klein. Groß geschrieben werden nur Klassen und Enumerationstypen :)

 ~ Stunter

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von WarumGeld
29.03.2016, 10:35

Ist es nicht so das ich bei Funktionsaufruf : NameAbfragen (&Name[101]); 

die Adresse des Arrays and den lokalen Pointer der Funktion: void nameabfragen (char *pName) übergebe ?

0
Kommentar von GabbaWally
29.03.2016, 10:37

wobei ja auch (wie in der deklaration richtig) char *pName geht? denn der name eines arrays ist ja bereits der pointer auf der erste element?

0

Ups, die Frage wird etwas seltsam angezeigt... Oben steht natürlich #include <iostream>

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?