为什么我会出现seg故障?我想在结构中放置一个char数组指针

时间:2011-10-02 01:10:23

标签: segmentation-fault

考虑以下代码:

typedef struct port * pport;

struct port
{
  int a;
  int b;
  pport next;
  pport prev;
  char * port;
};

void addNewport(pport head)
{
  pport newPort = (pport)malloc(sizeof(pport*));
  newPort->prev=temp;
  head->next=newPort;
}

int main()
{
  pport head = (pport)malloc(sizeof(pport*));
  addNewport(head);
}

如果尝试通过子程序添加新端口,这将导致seg错误,但如果我执行主程序,则不会出现seg错误。那是为什么?

1 个答案:

答案 0 :(得分:1)

替换

 malloc(sizeof(pport*))

 malloc(sizeof(struct port))

因为您不想为指针分配内存,而是为结构分配内存。