여기 코드를 붙여 넣습니다. *stack_ptr->s3++ = element;
세그먼트 화 오류가 발생했습니다. 오류를 제거하기 위해 무엇을 바꾸어야하는지 알려주세요.정수 배열을 함수로 전달할 때 세그먼트 오류가 발생했습니다.
typedef int stack_elmnt_int;
typedef struct {
stack_elmnt *s1;
stack_elmnt_int *s3;
int length;
int top;
} stack;
int push_stack_int(stack *stack_ptr, stack_elmnt_int element)
{
int i=0;
if (stack_full(stack_ptr))
printf("\nStack is full.");
else{
*stack_ptr->s3++ = element;
}
}
void main()
{
int arr[128], arr_num = sizeof(arr)/sizeof(int);
//after input from user to arr
//partial code pasted here
for(i=0;i<arr_num ;i++)
push_stack_int(&stack_1,arr[i]);
}
's3'을 초기화 했습니까? – Yang
전체 코드, 특히 stack_1 선언이 제대로 초기화되지 않았으므로이를 확인할 필요가 있습니다. – samoz
segfault는's3'에 메모리를 할당하지 않았기 때문에'* stack_ptr-> s3 ++ = element;'에 있습니다. –