C 给游标赋值都能失败。。。
本帖最后由 ing 于 2020-5-6 21:12 编辑当 i 为0的时候还是可以成功赋值的
i 自增后,在 i 处赋值就不友好了,游标全都没有改变
```
#define ElemType int
#define MaxSize 10
enum Status{
OK = 1,
ERROR = 0
};
typedef struct
{
ElemType data;
int cur;
}StaticLinkList;
enum Status initList(StaticLinkList *linkList)
{
for (int i = 0; i < 9; ++i)
{
linkList->cur = i+2;
}
linkList->cur = 1;
return OK;
}
int main()
{
StaticLinkList linkList;
initList(&linkList);
// insertSLL(&linkList,2,1);
}
```
________________________________________________
修改 StaticLinkList *linkList
为 StaticLinkList linkList 踏实的定义个结构体不好吗 ,按照你这样定义initList 的参数 是个 指向 xxxList 类型的指针 ,
linkList[ 0] 指向的是 xxxList
linkList 指向的是 xxxList[ 0 + MAX_SIZE ]
linkList 指向的是 xxxList[ 0 + 2 * MAX_SIZE ]
0下标以后的都越界了
typedef struct{
int cur;
}TempArray;
int sss(TempArray p){
for(int i = 0 ; i < 100 ; i++){
p.cur = i;
}
return 0;
}
int main(){
TempArray t;
sss(t);
return 0;
} int main()
{
StaticLinkList *linkList=NULL;
linkList = (StaticLinkList*)malloc(sizeof(StaticLinkList)*MaxSize);
initList(linkList);
// insertSLL(&linkList,2,1);
return 0;
} 谁教你这么写的?你可以骂他
页:
[1]