(linklist)是你定义的这种struct lnode这种类型的指针,也可以写成(struct lnode*)malloc(...)因为如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL 其中sizeof是取你定义的结构体取其总的字节数,即malloc后的括号内是要分内内存空间的大小 用sizeof函数获取 而整个分配的返回值是你定义结点...
typedefstructLNode*List;structLNode{ElementType Data[MAXSIZE]; Position Last; }; 初始化线性表: /* 初始化 */ListMakeEmpty(){ List L; L = (List)malloc(sizeof(structLNode)); L->Last =-1;returnL; 上网搜了下那两句结构体的意思,"typedef struct LNode *List"是创建的结构体指针LNode,并用...
malloc() :用来动态地分配内存空间 此处为向系统申请分配sizeof(Node)这么大小的空间,然后指针L指向该分配的空间
前面那个括号是开辟内存的类型,如L=(linklist*)malloc(sizeof(lnode)),就是将原来malloc返回的void型指针强制定义为 linklist型(也就是你一开始定义的指针L的类型),这样才可以赋值给L.sizeof(Inode)是指malloc开辟的内存空间的大小,这里就是指,这个大小为Inode型所占的容量.(例如sizeof(int),就是...
(structLNode));s->Data=x;s->Next=Ptrl;returns;//返回新的头节点地址}p=Findkth(i-1,Ptrl);//返回第i-1节点地址//p不存在if(p==NULL){printf("参数i错");returnNULL;}else{s=(List)malloc(sizeof(structLNode));s->Data=x;s->Next=p->Next;p->Next=s;returnPtrl;//返回头节点地址...
1.当函数参数为LinkList L时,意味着只改变或操作List的内容,而不需要改变L这个指针 如 Status GetElem(LinkList L,int i,ElemType) 2.当参数为LinkList &L时,意味着需要改变或操作L这个指针本身 如 Status InitList(LinkList &L) { L=(LinkList)malloc(sizeof(struct LNode)); ...
下面的例子中main()里面的p不受InitList的影响。 voidInitList(structLNode*L) {L=(LinkList)malloc(sizeof(LNode);...} intmain() {LinkListp;InitList(p);...} 下面的例子中main()里面的p接受InitList对L的赋值结果。 voidInitList(LinkList&L) {L=(LinkList)malloc(sizeof(LNode);...} int...
L=(LinkList)malloc(sizeof(Node)); L->next=null; LinkList(定义的指针变量)malloc(取)结构Node的空间大小,L就是这个链表结点以这个结构体大小开辟的一个动态可变长度的链。 通俗的说就是链表L的结点就和这个结构体一样(空间和数据)的一个可变长度的链默认已经有了个结点,这个结点就称作头结点。
1.当函数参数为LinkList L时,意味着只改变或操作List的内容,而不需要改变L这个指针 如 Status GetElem(LinkList L,int i,ElemType) 2.当参数为LinkList &L时,意味着需要改变或操作L这个指针本身 如 Status InitList(LinkList &L) { L=(LinkList)malloc(sizeof(struct LNode)); ...
malloc 的返回值 是一个 void* 类型 也就是说 他返回的是一个内存地址 返回的就是一个指针 所以要L=(LinkList*)malloc(sizeof(Node)) 这样做 类型要匹配上 将 void* 转换成 LinkList 不加 * 的 LinkList 就是一个类型 就像 int float 这样的一个类型 只不过他是个结构体罢了 加...