C语言结构体赋值有关问题

C语言结构体赋值问题
#include <stdio.h>

typedef unsigned short WORD;
typedef unsigned char BYTE;

struct struCommPacket{
int PackLength;
int command;
int data_length; 
BYTE* command_data;

};

int main(int argc,char * argv[])
{
struct struCommPacket *st;
st->PackLength = 10;
st->command = 11;
st->data_length = 12;
st->command_data = "hello";

printf("%s\n", (char *)st->command_data);

return 0;
}


运行报段错误啊!!!!为什么呢,想半天没想明白??C语言结构体赋值有关问题
C Structure struct

------解决方案--------------------
定义的只是一个结构体指针,没有指向具体的对象,所以访问报错