Die Logik der char pointer

Dann ist die Verwendung von char pointern ja immer ein Risiko!?
argv wird ja als Array von char pointern übergeben.
Man bräuchte nur einen Haufen solcher Programme gleichzeitig laufen lassen
und irgendeins wird dann beim Aufruf eine Variable irgendeines anderen
Programmes versehentlich überschreiben können!?
 
Original von Friedrich
Dann ist die Verwendung von char pointern ja immer ein Risiko!?
Auch wenn es die C-ler nicht gerne hören - ja.
argv wird ja als Array von char pointern übergeben.
Man bräuchte nur einen Haufen solcher Programme gleichzeitig laufen lassen
und irgendeins wird dann beim Aufruf eine Variable irgendeines anderen
Programmes versehentlich überschreiben können!?
Nein, die Programme laufen auf einem halbwegs modernem OS in getrennten Speicherbereichen. D.h es wird jedem Programm vorgespielt, es hätte ganz alleine (je nach OS) bis 4 Mrd Bytes Speicher zur freien verfügung.
http://de.wikipedia.org/wiki/Virtuelle_Speicherverwaltung
 
Ich Experimentier nochmal eine Runde rum und frag dann nach,
wenn ich noch Fragen offen habe.

Danke euch allen für eure (qualitativen) Antworten.
 
@ baevisbee
Wenn du in den eckigen Klammern eine Zahl x angibst, dann wird halt genau für x Elemente Platz reserviert - egal, ob du alle Elemente füllst oder nicht.
Wenn du char bla[]="Hallo" verwendest, wird ein const char bla[6] draus (Anzahl der Zeichen + \0-Terminierung)
Schonmal ausprobiert was du da sagst? Die professionelle Aufklärung war da leider in beiden Punkten falsch. Wenns dich interessierst google dazu nach "compiler alignment", sowas spielt besonders eine Rolle wenn du Richtung Exploits schreiben gehst oder ähnliche Low Level Dinge.
 
Zurück
Oben