A
alter
Grünschnabel
Hallo,
folg. Code:
In der split() kommen a und b nacheinander richtig an, aber so wie es aussieht, wird a letztendlich überschrieben in der main().
Wie ist das Problem zu erklären && zu lösen?
Viele Grüße!
folg. Code:
Code:
#include <stdio.h>
#include <string.h>
/*************************************************************************/
// splittet nach "." und "/"
// nice to use for 172.31.32.0/24
int split(int * ar, char buffer[]){
int i = 0;
char * pch;
pch = strtok(buffer, "./");
while (pch != NULL){
// printf("%s\n", pch);
ar[i] = atoi(pch);
pch = strtok (NULL, "./");
i++;
}
return i;
}
/*************************************************************************/
int main(){
int *a;
int *b;
split(a, "1.2.3");
split(b, "4.5.6");
printf("%d %d %d\n", a[0], a[1], a[2]); // 4 5 6 !?
return 0;
}
In der split() kommen a und b nacheinander richtig an, aber so wie es aussieht, wird a letztendlich überschrieben in der main().
Wie ist das Problem zu erklären && zu lösen?
Viele Grüße!