简单问题,大家看看
目的是想把一个IP形式的字符串,存入一个ip结构里面。
没有做成函数的时候都是好的,但换成函数后输出的结果就不
对了,帮帮看看呀
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
typedef struct IP{
char * field_one;
char * field_two;
char * field_thress;
char * field_four;
}*IPaddress;
IPaddress IPtoStruct(char IPstr[]){
int i=0;
char *str;
char temp[4][4];
IPaddress IPstruct;
IPstruct = (IPaddress)malloc(sizeof(IPaddress));
if(IPstruct==NULL){
printf("Insufficient memory available\n");
}else{
str = strtok(IPstr,".");
strcpy(temp[i],str);
while(str!=NULL){
str=strtok(NULL,".");
if(i<3)strcpy(temp[++i],str);
}
IPstruct->field_one = temp[0];
IPstruct->field_two = temp[1];
IPstruct->field_thress = temp[2];
IPstruct->field_four = temp[3];
}
return IPstruct;
}
void main(){
char p[]="127.0.0.1";
IPaddress g ;
g = (IPaddress)malloc(sizeof(IPaddress));
g = IPtoStruct(p);
printf("%s %s %s %s\n",g->field_one,g->field_two,g->field_thress,g->field_four);
}