友友们malloc搞不懂

img


他这个malloc前面,为啥不用强制转换类型?
有哪位说一行malloc的用法吗

ElemType是一个自定义类型,本身应该就是一个指针了啊
比如

typedef int * ElemType;
typedef struct _sqlist
{
ElemType elem;
int elemCount;
}sqlist;

得看ElemType的定义是什么了
如果其本身就是一个指针的话,那么这里就是一个指向指针的内存空间,如果本身不是指针,那么就是错误的,需要加上*;
而看你的线性表的本身的话,第一种指向指针的指针好像没啥意义,个人认为是少了星号

typedef int ElemType;
typedef int *ElemTypePtr;
typedef int status;
typedef struct {
    ElemType *elem;
    ElemTypePtr elemPtr;
    int length;
}Sqlist; 
         
status InitList(Sqlist &L) {
    L.elem = (ElemType *)malloc(LIST_SIZE * sizeof(ElemType));
    L.elemPtr = (ElemTypePtr )malloc(LIST_SIZE * sizeof(ElemTypePtr));
...
} 

X86下

img


X64下:

img