Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 |
void SDL_WM_GetCaption(char **titel, char **icon_titel); |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Teizakk« (12.04.2013, 15:13)
Administrator
simbad
unregistriert
C-/C++-Quelltext |
|
1 |
char *bla[]; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> using namespace std; main(int argc, char**argv) { // // du kannst den Inhalt von argv mit einem index ablaufen for (int i=0;i<argc;++i) { cout << (*(argv+i)) << "\n"; } // // Oder auf den letzten Eintrag warten for (;(*argv) != 0;++argv) { cout << (*argv) << "\n"; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
int *internalP; void Start() { internalP = new int[1]; (*internalPointer) = 3; } void GetSomePointer(int *p) { p = internalP; } void DoSomething() { delete internalP; int *newPointer = new int[1]; (*newPointer) = 6; internalPointer = newPointer; } |
Quellcode |
|
1 2 3 4 5 6 |
void swap(val1, val2) { temp = val1; val1 = val2; val2 = temp; } |
simbad
unregistriert
Eben nicht. Du willst die Adresse des Zeigers haben und nicht die Adresse des Objektes. Wenn du folgendes hast:
edit: Ich beziehe mich auf das vor simbads Antwort.
simbad
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// // Hier wird tatsächlich ein Bereich im Speicher definiert, in den hinein das array angelegt wird. // Das Symbol text wird direkt mit dem Array verbunden. Beim Zugriff wird eine einfach indirektion verwendet. char text[]={"Ich bin ein Text"}; // // Hier wird wieder ein Bereich im speicher definiert, in den der Text abgelegt wird, aber zusätzlich eine Variable // erzeugt, die die Adresse des Bereichs enthält. Man halt also eine doppelte indirektion. char *moretext="Ich bin noch mehr text"; // // Das Problem ist jetzt, das der Name der beiden Variablen jeweils die Addresse des Text ist, der Compiler aber // unterschiedlichen Code produziert um darauf zuzugreifen. Man kann den Namen der Variablen identisch verwenden. // // Wenn man in einem Modul ein Array so definiert int Nummern[]={1,2,3,4}; // // Und die Nummern im anderen so importiert. extern int *Nummern; // // Dann geht das voll daneben, weil in dem Modul in dem Nummern importiert wird der Compiler anderen Code // generiert. |
simbad
unregistriert
Deine Aussagen bzgl. doppelte Indirektion u.ae. sind falsch.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> char text[]={"Hallo"}; void output(void); int main (void) { printf("%s\n", text); output(); return (0); } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
#include <stdio.h> extern char *text; void output(void) { printf("%s\n", text); } |
C-/C++-Quelltext |
|
1 2 |
movl $text, %edi
call puts
|
C-/C++-Quelltext |
|
1 2 3 |
movq text(%rip), %rax movq %rax, %rdi call puts |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »simbad« (13.04.2013, 08:39)
Werbeanzeige