能解一下这个吗,不太明白

struct comp  //复数comp有两个成员:实部re和虚部im
{
  float re;
  float im;
};
struct comp* m(struct comp* x, struct comp* y) //函数功能为求两个复数的差

{
  【4】; //定义复数指针z
  z = (struct comp*)malloc(sizeof(struct comp)); //为指针z分配空间
  z->re = 【5】- 【6】; //z的实部等于x的实部减y的实部
  z->im = 【7】 -【8】; //z的虚部等于x的虚部减y的虚部
  return(z);
}
main()
{
  struct comp* t;
  struct comp a, b;
  a.re = 1;   a.im = 2;
  b.re = 3;   b.im = 4;
  t = m(【9】); //调用函数m求a与b的差
  printf("z.re=%5.2f, z.im=%5.2f", t->re, t->im);
  free(t); //释放指针


#include<stdio.h>
struct comp  //复数comp有两个成员:实部re和虚部im
{
    float re;
    float im;
};
struct comp* m(struct comp* x, struct comp* y) //函数功能为求两个复数的差

{
    struct comp *z; //定义复数指针z
    z = (struct comp*)malloc(sizeof(struct comp)); //为指针z分配空间
    z->re = x->re - y->im; //z的实部等于x的实部减y的实部
    z->im = x->im - y->re; //z的虚部等于x的虚部减y的虚部
    return(z);
}
main()
{
    struct comp* t;
    struct comp a, b;
    a.re = 1;   a.im = 2;
    b.re = 3;   b.im = 4;
    t = m(&a, &b); //调用函数m求a与b的差
    printf("z.re=%5.2f, z.im=%5.2f", t->re, t->im);
    free(t); //释放指针
}