それの作成中エラーがでたのですが原因がよくわからず困っています。自分で調べてみたところinseartlineのnode *pnode = (node *)malloc(sizeof(node))だと思うのですが...
エラーの原因と修正の仕方を教えてもらえれば光栄です。できるなら今日明日にでもお願いします
#include<stdio.h>
#include<stdlib.h>
char buf[200];
typedef struct Node{
char *str;
struct Node *left,*right;
} node;
node *start,*current,*p;
node *insertline(node *pcur,char *buf){
node *pnode = (node *)malloc(sizeof(node));
if( pnode == NULL)
puts("Not enough memory"),exit(EXIT_FAILURE);
pnode->str =(char *)malloc(sizeof(buf)+1);
if(pnode->str == NULL)
return NULL;
strcpy(pnode->str,buf);
pnode->left = pcur;
pnode->right = pcur->right;
pcur->right->left=pnode;
pcur->right = pnode;
return pnode;
}
int main(){
start=(node *)malloc(sizeof(node));
start->left = start->right = current = start;
for(;;){
if(fgets(buf,200,stdin)==NULL)
break;
buf[strlen(buf)-1] = '\0';
p = insertline(current,buf);
if(p==NULL){
puts("Not enough memory");
break;
}else
current = p;
}
}