【发布时间】:2018-04-08 14:51:26
【问题描述】:
我对 C 语言比较陌生,在处理数组的方法方面需要一些帮助。来自 Java 编程,我习惯于说 int [] method() 以返回一个数组。但是,我发现使用 C 语言时,您必须在返回数组时使用指针。作为一个新程序员,我真的一点也不明白,即使我浏览过很多论坛。
基本上,我正在尝试在 C 中编写一个返回 char 数组的方法。我将为该方法(我们称之为 returnArray)提供一个数组。它将从前一个数组创建一个新数组并返回一个指向它的指针。我只需要一些帮助来了解如何开始以及如何在指针被发送出数组后读取指针。任何解释这一点的帮助表示赞赏。
数组返回函数的建议代码格式
char *returnArray(char array []){
char returned [10];
//methods to pull values from array, interpret them, and then create new array
return &(returned[0]); //is this correct?
}
函数调用者
int main(){
int i=0;
char array []={1,0,0,0,0,1,1};
char arrayCount=0;
char* returnedArray = returnArray(&arrayCount); ///is this correct?
for (i=0; i<10;i++)
printf(%d, ",", returnedArray[i]); //is this correctly formatted?
}
我尚未对此进行测试,因为我的 C 编译器目前无法正常工作,但我想弄清楚这一点
【问题讨论】:
-
返回数组的大小是否如您的代码示例中所示?除了答案中提到的堆栈问题之外,我看到的唯一其他问题是,如果您的返回数组的大小不确定,鉴于指针/数组在 C 中的工作方式,您将不知道它有多大。
-
是的,我一直都知道传入数组的大小。输入和输出数组的大小不会改变。
-
C 语言的发展* - bell-labs.com/usr/dmr/www/chist.html