pointer



  • Nun, da ich seit Stunden am verzweifeln bin, seid ihr meine letzte Rettung.
    Ich habe zwei Fagen zum Thema Pointer:

    1. Ich möchte eine Funktion aufrufen, welche als Parameter eine

    const char*
    

    Variable übergeben haben möchte, um diese dann auf dem Bildschirm anzeigen zu können. Den Gefallen möchte ich ihr auch gerne tun, allerdings habe ich nur eine

    long int zahl
    

    zu bieten und alle Versuche, den Einen Typ in den Anderen zu verwandeln sind gnadenlos in die Hose gegangen.

    2. Diesmal habe ich schon eine

    const char* text
    

    Variable um möchte sie an dieselbe Funktion übergeben, allerdings will ich dem entsprechenden Text einen weiteren Buchstaben hinzufügen, bevor ich den Pointer übergebe. Auch hier bin ich gnadenlos gescheitert. 😞

    BITTE HELFT MIR.
    II.



  • weiß nicht, ob mit meiner müdigkeit richtig liege:

    fürs erste:

    #include <stdio.h>
    #include <stdlib.h>
    
    void test(char *buf){
        printf("%s", buf);
    }
    
    int main(){
    
      long int  i=12345678;
    
      char buffer[12];
      sprintf(buffer, "%d", i);
    
      test (buffer);
    
      return 0;
    }
    


  • das zweite

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void test(char *buf){
        printf("%s", buf);
    }
    
    int main(){
    
      char *text="hallo elis";
    
      char string[80];
       strcpy( string, text);
       strcat( string, "e" );
    
       test(string);
    
      return 0;
    }
    


  • 1000 mal Danke. Ich glaube ich sollte für heute schlußmachen und in die Kiste hüpfen, denn ich seh schon den Wald vor lauter Bäumen nicht mehr. Vielleicht finde ich ja Morgen auch noch die Antwort auf meine 2. Frage. Danke



  • BTW.
    benutze nach Möglichkeiten immer die "n"-Funktionen, wenn du dir über die entsprechenden Array größen nicht sicher bist, da die n Funktionen Bufferoverflows verhindern können. Schau dir mal snprintf und strncpy und strncat an.

    Wenn du nur einen einzelnen Buchstaben anhängen willst, kannst du auch das machen, dass sollte schneller sein

    char text[12]="hallo elis";
    text[10]='e';
    text[11]=0;
    


  • Entschuldigung, aber das wollte ich schon immer mal machen xD


Anmelden zum Antworten