关于结构体指针的问题!求教

#include "stdafx.h"
#include "malloc.h"

typedef struct data{

int a;

int b;

}data,*pdata;

pdata test;

void Creat(pdata para,int a, int b)
{
para=(pdata)malloc(sizeof(data));
para->a=a;
para->b=b;

}

int _tmain(int argc, _TCHAR* argv[])
{
Creat(test,3,4);

return 0;

}
这段传的是指针test,为什么不能对test进行初始化?
但是
#include "stdafx.h"
#include "malloc.h"

typedef struct data{

int a;

int b;

}data,*pdata;

pdata test;
pdata *ptest=&test;

void Creat(pdata *para,int a, int b)
{
*para=(pdata)malloc(sizeof(data));
(*para)->a=a;
(*para)->b=b;

}

int _tmain(int argc, _TCHAR* argv[])
{
Creat(ptest,3,4);

return 0;

}
这段代码就可以完成初始化
我的疑问是第一段也是指针传递啊,操作的是地址,为什么不能初始化呢?请大神指教。

查看全部
anewbies
anewbies
2015/08/26 14:49
  • 结构
  • 点赞
  • 收藏
  • 回答
    私信

5个回复