我是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中编码相当新,目前我正在尝试创建一个返回ac字符串/ char数组并分配给变量的函数.
到目前为止,我已经观察到返回char*是最常见的解决方案.所以我试过:
char* createStr() {
char char1= 'm';
char char2= 'y';
char str[3];
str[0] = char1;
str[1] = char2;
str[2] = '\0';
char* cp = str;
return cp;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我如何使用返回char*并将它指向的char数组赋值给char []变量?
我尝试过(都导致了noob-drowning错误):
char* charP = createStr();char myStr[3] = &createStr();char* charP = *createStr();