gpt4 book ai didi

c - 将指针数组传递给函数

转载 作者:行者123 更新时间:2023-11-30 21:14:56 24 4
gpt4 key购买 nike

我有以下部分代码:

int res[10] = {-1, 2,-2,-4,-5,-6, 0, 0, 9,-10};

int* resP[10];
for(int i=0 ; i < 10 ; i++){
resP[i] = res+i;
}
int score;
apply(0, resP, 10, &score);

应用签名如下所示(我不允许更改它):

void apply(int, int* [], int, int*);

但是我上面的函数调用不起作用,因为第二个参数的类型错误,我不明白为什么。

最佳答案

代码编译成功

#include <stdio.h>

void apply(int _1, int* _2[], int _3, int* _4){}

int main(void)
{
int res[10] = {-1, 2,-2,-4,-5,-6, 0, 0, 9,-10};

int* resP[10];

for( int i = 0 ; i < 10 ; i++ )
{
resP[i] = res+i-1;
}

int score;

apply(0, resP, 10, &score);
}

第二个参数具有合适的类型。所以问题出在其他地方。虽然循环中的赋值语句是错误的。您不能在数组的第一个元素之前访问内存。即指针 resP[0] 无效。

我没有看到“上面的函数调用不起作用”和“第二个参数的类型错误”之间的关系。您没有说出“上面的函数调用不起作用”的意思。

关于c - 将指针数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25581039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com