相关疑难解决方法(0)

使用C返回数组

我是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?
} 
Run Code Online (Sandbox Code Playgroud)

函数的调用者

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?
}
Run Code Online (Sandbox Code Playgroud)

我还没有测试过这个,因为我的C编译器目前还没有工作,但我想弄明白这一点

c arrays pointers char

133
推荐指数
6
解决办法
30万
查看次数

使用C-string:"返回与本地变量关联的堆栈内存的地址"

我不是C程序员,所以我不熟悉C-string但新的我必须使用C库,所以这里是我的代码的缩短版本来演示我的问题:

char** ReadLineImpl::my_completion () {

    char* matches[1];


    matches[0] = "add";

    return matches;

}
Run Code Online (Sandbox Code Playgroud)

我收到警告:

警告 - 与返回的本地变量"matches"关联的堆栈内存的地址

我的应用程序似乎没有正常工作(可能是因为这个警告).

什么是警告,是否会引起任何问题?

c++ pointers c-strings

23
推荐指数
2
解决办法
5万
查看次数

标签 统计

pointers ×2

arrays ×1

c ×1

c++ ×1

c-strings ×1

char ×1