0
는 다음과 같은 코드를 고려해야합니다.왜 내가 seg fault를 얻습니까? 구조체 내부에 char 배열 포인터를 넣고 싶습니다.
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'ing됩니다. – slartibartfast
myrkos가 머리에 못을 박았다고 생각합니다. 액세스 할 수없는 메모리를 읽고 있습니다. –