[C/C++] Variable in Fremder Funktion verändern.

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Tomatensaft, 22. August 2008 .

  1. 22. August 2008
    Variable in Fremder Funktion verändern.

    Moin,

    folgendes Problem. Ich will eine Funktion aufrufen und dieser eine Adresse übergeben. Die Funktion soll die Variable dann mit einem Wert füllen. Mit einer einfachen variable is das ja recht simpel.

    Code:
    #include "stdafx.h"
    #include <stdio.h>
    
    void veraendern(int *);
    
    int main(int argc, char* argv[])
    {
     int bla = 0;
    
     printf("Vorher: %i\n", bla);
    
     veraendern(&bla);
    
     printf("Nachher: %i\n", bla);
     
     return 0;
    }
    
    void veraendern(int *var)
    {
     *var = 15;
    }
    
    Nur wie läuft das wenn es sich nicht um eine int variable handelt, sondern um ein Char Array?
    Kann mir da wer beispielcode schreiben? Google is mir da keine große Hilfe >.>

    Danke schonmal, MfG
     
  2. 22. August 2008
    AW: Variable in Fremder Funktion verändern.

    Code:
    #include <stdio.h>
    
    void edit(char** var);
    
    int main(int argc, char* argv[]) {
     char* foo = "hallo";
     printf("vorher: %s\n", foo);
     edit(&foo);
     printf("nacher: %s\n", foo);
     return 0;
    };
    
    void edit(char** var) {
     *var = "welt"; 
    }
    und ich kann ned mal c oder cpp
    hab das mal in den php-source quelltexten gesehen^^


    kompiliert mit dev-cpp
     
  3. 22. August 2008
    AW: Variable in Fremder Funktion verändern.

    soweit, sogut ..
    Du hast da jetzt mit nem Char * gearbeitet ..
    nun brauch ich aber nen Char Array (Char bla[] = "..")

    Also hab ich das nen bisschen angepasst ..

    Code:
    #include "stdafx.h"
    #include <stdio.h>
    
    void edit(char** var);
    
    int main(int argc, char* argv[]) {
    
     char* foo = "Hallo Welt";
    
     printf("vorher: %s\n", foo);
     
     edit(&foo);
    
     printf("nacher: %s\n", foo);
    
     return 0;
    };
    
    void edit(char** var) {
     
     char tmp[] = "Welt Hallo";
    
     *var = tmp;
    
    }
    
    aber als ausgabe bekomme ich dann:
    Code:
    vorher: Hallo Welt
    nacher: Welt☺
    Press any key to continue
    
    Warum macht er beim Leerzeichen schluss?

    MfG
     
  4. 22. August 2008
    AW: Variable in Fremder Funktion verändern.

    hiho,

    hab nich viel zeit.
    aber das hier stört mich:

    PHP:
    void edit ( char ** var) {
        
        
    char tmp [] =  "Welt Hallo" ;

        *var = 
    tmp ;

    }
    würde es mal mit einer stringfunktion versuchen:

    PHP:
    void edit ( char ** var) {
        
        
    char tmp [] =  "Welt Hallo" ;

        
    strcpy (*var,  tmp );

    }
    oder

    PHP:
    void edit ( char ** var) {
        
        
    char tmp [];

        
    strcpy ( tmp "Welt Hallo" );

        
    strcpy (*var,  tmp );

    }
    habs nicht versucht. weil ich gleich los muss. aber vllt klappts ja. eventuell schau ich später nochma hier rein.
    als header kommt hinzu:
    include <string.h>

    Mfg Schmidt!
     
  5. 23. August 2008
    AW: Variable in Fremder Funktion verändern.

    Hey!

    Der Variable zu wenig Speicher zugewiesen. Les dir das Kapitel ueber Pointer nochmal durch
    Tipp: strdup ();
    Dann musste dich nicht um irgendwelche Bytes kuemmern. Nur nicht free () vergessen

    Mfg,

    Kolazomai
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.