想问一下结构体这部分,加'*'就相当于是命名了一个结构体指针,所以按上图我开始是这么写的
typedef struct node
{
int data[length];
struct node*next;
}node;
typedef struct snode
{
node *head,*rear;
}*linkstring;
//然后我在初始化的时候就这样子写
bool init_string(linkstring &s)
{
s->head=s->rear=(node*)malloc(sizeof(node));
s->rear->next=NULL;
}
然后编译出来就会显示内存冲突,我把他改成像图中一样的普通的结构体类型,编译又可以通过了,所以想问一下这个是为什么呢?是因为指针不能这样子分配内存吗?