我对 C 有点陌生,我试图了解 malloc() 与结构和指针的使用。这是我正在尝试编写的程序片段
typedef struct
{
char *id;
char *ocup;
char cj[15]; //data to fill the vector
} T1;
typedef struct
{
T1 *a1;
T1 *a2;
} T2;
T2* Aloc(int mp)
{
T1 *p,*s;
T2 *af = (T2*)malloc(sizeof(T2));
if(af == NULL)
return 0;
af->a1 = (T1*)malloc(sizeof(T1) * mp);
if(af->a1 == NULL)
return 0;
// trying to go through the freshly created vector
// but without success
for(p = af->a1, s = p + mp; p < s; p++)
af->a2 = p;
return af;
}
// mp = size of the struct
T1 *a1
是向量的起始地址
T2 *a2
是它的结尾(......或者它可能在向量中我想要的任何地方结束)
如果我尝试编译上面的代码,编译器会冻结。我没有主意了。我究竟做错了什么?:(
谢谢你!