关于链表,该怎么处理

关于链表
#include <stdio.h>
#include "malloc.h"
#include "string.h"

typedef struct node
{
string name;
char vp;
double dis;
struct node *next;
}SLNode;

int main()
{
SLNode *L,*head;
head = (SLNode * )malloc(sizeof(SLNode));
head->next = NULL;
L = (SLNode * )malloc(sizeof(SLNode));
L->next = NULL;
L->dis = 11;
L->name = "dfdf";
L->vp = 'g';
head->next = L;
printf("%f",head->next->dis);
printf("%c",head->next->vp);
printf("%s",head->next->name);
return 0;
}

编译出错,初学!求解释,神马意思?

------解决方案--------------------
C/C++ code
#include <malloc.h>//包含库的头文件,要用<>包含自己实现的才用""
#include <string.h>

------解决方案--------------------
C/C++ code
#include <stdio.h>
#include <malloc.h>
#include <string>
using namespace std;//加上这句应该就不会编译出错了,如果还出错,把错误贴一下