You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 16:01:30