报错了,不知道问题在哪里。新手,不怎么理解指针呢。求高手指点
谢谢各位哥哥姐姐
本人刚学数据结构,正在第一步的顺序表
这个是照抄网上的代码
但是还是出了错
求帮忙
“”ListInsert_Sq”” : cannot convert parameter 3 from “”int”” to “”int *””
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
谢谢各位哥哥姐姐
本人刚学数据结构,正在第一步的顺序表
这个是照抄网上的代码
但是还是出了错
求帮忙
“”ListInsert_Sq”” : cannot convert parameter 3 from “”int”” to “”int *””
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Status ListInsert_Sq(SqList *L,int i ,ElemType e) { if(i < 1 || i > L->length+1) return ERROR; if(L->length == L->listsize) { ElemType * newbase = (ElemType *)realloc(L->elem,(L->listsize + LISTINCREMENT) * sizeof(ElemType)); if(! newbase) exit(OVERFLOW); L->elem = newbase; L->listsize += LISTINCREMENT; } ElemType *q = &(L->elem[i - 1]); ElemType *p; for(p = &(L->elem[L->length - 1]); p >= q;p--) { *(p + 1) = *p; } *q = e; L->length++; return OK; } int main() { SqList L; ElemType e; int i; for(i = 0;i < 5;i++) { ListInsert_Sq(&L, i , i); } }
解决方案:30分
调用 ListInsert_Sq(&L, i , i);时,其函数定义为
Status ListInsert_Sq(SqList *L,int i ,ElemType e)
而i的定义在代码中为 int , 与原函数定义 ElemType 不一致
Status ListInsert_Sq(SqList *L,int i ,ElemType e)
而i的定义在代码中为 int , 与原函数定义 ElemType 不一致
解决方案:10分
不太清楚编译器能否本人会对深层次的数据类型进行检查,不过看报错信息,目测不会。
从规避我们不了解的深层次的部分、还是维护代码的可读性,建议还是在第一层传入参数时,其数据类型与函数定义时一致。
从规避我们不了解的深层次的部分、还是维护代码的可读性,建议还是在第一层传入参数时,其数据类型与函数定义时一致。