VAriable aussser halb der funktion
-
hi
will die variable ausser halb der funktion ändern klappt aber irgendwie nicht so ganz.
kann mir einer bitte sagen was da falsch ist??#include <stdio.h> #include <stdlib.h> #include <string.h> void ipcheck(char* test); void main(void) { char strings[] = "12.13.174.15"; char* test; test=&strings; int i=0; // for(i = 0; i<10;i++) { printf("%s\n",strings); ipcheck(test); printf("%s\n",strings); // } return 0; } void ipcheck(char* test) { int i=1; char *ptr; ptr = strtok(test, "\."); while(ptr != NULL) { printf("% d. Wort: %s\n",i++,ptr); ptr = strtok(NULL, "\."); } *test="11.11.11.11"; return (1); }
-
hi,
ein char* zeigt ja auf eine folge von zeichen. wenn der über eine funktion verbogen werden soll, dann musste ihn als doppel-* übergeben. so etwa:void ipcheck (char** test) // test zeigt auf einen pointer vom typ 'char' { // ... // ... mach was // ... *test="11.11.11.11"; // der pointer bekommt eine andere adresse } void main (void) { char *strings = "12.13.174.15"; // anfangszustand // ... // ... mach was anderes // ... printf ("%s\n",strings); // gibt "12.13.174.15" ipcheck (&strings); // hier wird er umgesetzt printf ("%s\n",strings); // gibt "11.11.11.11" }
-
int ipcheck(char* test); int main(void) { char strings[] = "12.13.174.15"; // char* test; // test=&strings; int i=0; // for(i = 0; i<10;i++) { printf("%s\n",strings); ipcheck(strings); printf("%s\n",strings); // } return 0; } int ipcheck(char* test) { int i=1; char *ptr; ptr = strtok(test, "\\."); while(ptr != NULL) { printf("% d. Wort: %s\n",i++,ptr); ptr = strtok(NULL, "\\."); } strcpy(test, "11.11.11.11"); return (1); }