나는 C 프로그램을 썼다. 함수 내부 코드의 일부는 다음과 같다 :C에서 포인터를 가리키는 포인터를 초기화하고 선언 할 수없는 이유는 무엇입니까?
struct node* functionName(struct node *currentFirstPointer){
struct node **head = NULL;
*head = currentFirstPointer;
return *head;
}
여기
node
는 구조이다. 그러나 프로그램을 실행할 때이 줄은 segmentation fault
이됩니다. 하지만 선언하고 아래의 같은 함수 안에 별도의 문에서 포인터 포인터를 초기화하면 잘 작동합니다.
첫 번째 블록이 작동하지 않고 두 번째 블록이 정상적으로 작동하는 이유는 무엇일까요?
[___MCVE___] (http://stackoverflow.com/help/mcve)를 작성 하시겠습니까? –
첫 번째 예제가 작동하고 두 번째 예제가 작동하지 않습니까? 왜냐하면 그건 의미가 없기 때문입니다. 다른 방향을 의미하지 않았 니? 첫 번째 예제에서 seg fault가 발생하면 문제는 게시 된 코드에 없습니다. – Lundin
나는 당신의 경우에 정의되지 않은 동작을 이해하지만 Visual Studio에서 이것을 재현 할 수 없기 때문에 어느 컴파일러를 사용하고 있는지 말해 주실 수 있습니까? –