Here is the code, Getting segmentation fault. I have created two struct data type and assigned them memory via malloc() function but still it shows me segmentation fault.
#include<stdio.h>
#include<stdlib.h>
struct Node {
int data;
struct Node * next;
};
struct Queue{
struct Node *front, *rear;
};
struct Node* newNode(int n){
struct Node* node=(struct Node*)malloc(sizeof(struct Node));
node->next=NULL;
node->data=n;
return node;
}
void printNode(struct Queue* queue){
while(queue->front<=queue->rear){
printf("%d ",queue->front->data);
queue->front=queue->front->next;
}
}
int main(void) {
int i;
struct Queue* queue=(struct Queue*)malloc(sizeof(struct Queue));
queue->front=NULL;
queue->rear=NULL;
for(i=0;i<4;i++){
if(queue->rear==NULL){
queue->front->next=queue->rear->next=newNode(i);
}
else{
queue->rear->next=newNode(i);
queue->rear=queue->rear->next;
}
}
printNode(queue);
return 0;
}
queue->front->next=queue->rear->next=newNode(i);-->queue->front = queue->rear = newNode(i);queue->front<=queue->rearis invalid.printNodewhy do you changequeue->front? Use a local pointer.