Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Segmentation fault 为什么我会出现seg故障?我想在结构中放置一个字符数组指针_Segmentation Fault - Fatal编程技术网

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

Segmentation fault 为什么我会出现seg故障?我想在结构中放置一个字符数组指针,segmentation-fault,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; }

以休闲代码为例:

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故障。为什么会这样?

替换

 malloc(sizeof(pport*))


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

temp在我能看到的任何地方都没有定义……而且,你在分配指针大小的内存,而不是结构。我认为myrkos一针见血,你在读取不允许访问的内存。
 malloc(sizeof(struct port))