I don't know why, my code runs a hint segment error.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include < assert.h>typedef struct _person { const char *name; int age ; struct _Person* (*person_copy) (struct &NBSP;_PERSON*&NBSP;P) ;} Person ;struct _person* person_copy (Struct _person * pdata) { struct _Person* p = (struct _person*) malloc (sizeof (Struct _person)); assert (null != p); memmove (P, pdata, sizeof ( Struct _person)); return p;}; Struct _person* mclone (Struct _person* pdata) { return Pdata->person_copy (PData) ;} Int main () { const char *mname = "Zhangsan" ; &nbSp person p1 = { .name = mname , .age = 18, } ; printf ("name of p1 is %s, age is %d\n" , P1.name , p1.age) ; person* p2 = mclone (&P1) ; printf ("name of p2 is %s, age is %d\n" , P2->name , p2->age) ; //don't know why, no output // Change to Person* p2 = person_copy (&P1) normal free (p2) ; return 0 ;}
Reference:
1.http://blog.csdn.net/feixiaoxing/article/details/7075316
C Language Prototype mode