C语言中如何正确将approvedList指针传递给arrayPush函数?
问题解决:数组插入函数的参数类型匹配问题
你的arrayPush函数第一个参数要求的是char (*)[3][4][25]类型的指针,而getStudentsSituation函数的参数approvedList本身就已经是这个类型了。当前调用arrayPush(&approvedList, ...)传递的是二级指针(类型为char (**)[3][4][25]),和函数要求的参数类型不匹配,导致报错。
正确调用方式
直接传递approvedList即可,不需要取地址:
void arrayPush(char (*insertionArray)[3][4][25], int studentsClass, char valueToInsert[25]){ // 函数实现 } void getStudentsSituation(char (*approvedList)[3][4][25], ...){ // 确保studentsAverage、studentsClass、studentsName已正确定义并赋值 if(studentsAverage>5){ arrayPush(approvedList, studentsClass, studentsName); // 正确调用 } }
补充说明
只有当你需要在arrayPush函数内部修改传入的指针本身(比如动态扩容后更新指针指向)时,才需要传递二级指针。但从函数功能描述来看,它只是往已有的三维字符数组中插入数据,所以直接传递一级指针就能满足需求。
内容的提问来源于stack exchange,提问作者andr2
相关产品推荐
相关产品推荐

