gpt4 book ai didi

c - 如何从函数 A 返回一个数组,然后函数 B 获取这个数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:48 25 4
gpt4 key购买 nike

我的主函数中有两个函数。

我曾尝试用指针来解决这个问题,但作为初学者,使用它非常复杂。

int main(){
int *p;

p = function_A();
function_B(p);

return 0;
}

int function_A(){
static int myArray[3];
myArray[0] = 11;
myArray[1] = 22;
myArray[2] = 33;

return myArray;
}

int function_B(int *myPointer){
// Here I just want to print my array I've got from function_A() to the
// console

printf("%d", *myPointer)
return 0;
}

function_A 应该返回一个数组,function_B 应该接受这个数组。

谢谢!

最佳答案

您的编译器可能已经告诉您一些问题。首先,您应该在调用函数之前定义它们,或者至少预先声明它们。

其次,要返回一个数组,您需要返回一个指向该数组第一个元素的指针,即返回类型是int * 而不是int

第三,正如 FredK 所指出的,当您只收到一个指针时,您没有机会确定它指向的数组中有多少元素。您可以使用特定值终止数组,例如0,否则您还需要返回数组的大小。

查看对您的程序所做的以下调整:

int* function_A(int *size){
static int myArray[3];
myArray[0] = 11;
myArray[1] = 22;
myArray[2] = 33;

if (size) {
*size = 3;
}
return myArray;
}

void function_B(int *myPointer, int size){
for (int i=0; i<size; i++) {
printf("%d\n", myPointer[i]);
}
}

int main(){
int *p;

int size=0;
p = function_A(&size);
function_B(p,size);

return 0;
}

关于c - 如何从函数 A 返回一个数组,然后函数 B 获取这个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54029347/

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