IP は 2 つの構造を持つ電卓を作成しています: -IPv4: タイプ「アドレス」の IP アドレス、IP のクラス、およびマスクが含まれます -アドレス: 4 オクテットの配列が含まれます
typedef struct Address
{
int *Octetos;
} Address;
typedef struct IPv4
{
Address *IP;
char Clase;
Address *Mascara;
} IPv4;
私は 2 つの関数を使用します: -ClearDireccion: IP アドレスの初期化を処理する関数 -CrearOcteto: IP の 4 オクテットの初期化を処理する関数
int * CrearOcteto(int num)
{
int *octe=(int *)malloc (num*sizeof(int));
octe[0]=0;
octe[1]=0;
octe[2]=0;
octe[3]=0;
return octe;
}
IPv4 * CrearDireccion(int Oct[])
{
IPv4 * instanciaDirec;
instanciaDirec=(IPv4 *)malloc(sizeof(IPv4));
instanciaDirec->IP->Octetos=CrearOcteto(4);
instanciaDirec->IP->Octetos[0]=Oct[0];
instanciaDirec->IP->Octetos[1]=Oct[1];
instanciaDirec->IP->Octetos[2]=Oct[2];
instanciaDirec->IP->Octetos[3]=Oct[3];
instanciaDirec->Mascara->Octetos=CrearOcteto(4);
instanciaDirec->Clase='N';
return instanciaDirec;
}
実行すると、次のメッセージが表示されます: 「セグメントの違反 (`コア'生成)」