我道歉,如果我完全误会C++的时刻,所以我的问题可能是解决很简单。我试图通过值传递一个字符数组到一个函数中,创建一个相同大小的新数组,并用特定元素填充它,然后从该函数返回该数组。这是我到目前为止的代码:按值传递字符数组,并从函数返回一个新的字符数组?
char *breedMutation(char genome []){
size_t genes = sizeof(genome);
char * mutation = new char[genes];
for (size_t a = 0 ;a < genes; a++) {
mutation[a] = 'b';
}
return mutation;
}
for
循环是什么更新新的数组;现在,这只是虚拟代码,但希望函数的想法很清楚。当我在main
调用这个函数,但是,我得到的initializer fails to determine size of ‘mutation’
错误。这是我在主代码:
int main()
{
char target [] = "Das weisse leid"; //dummy message
char mutation [] = breedMutation(target);
return 0;
}
我需要更多地了解指针和字符数组,这我知道,但我想通过例子来学习为好。
编辑:此代码,我试图修改字符数组,是breedMutation
的基础。
int *f(size_t s){
int *ret=new int[s];
for (size_t a=0;a<s;a++)
ret[a]=a;
return ret;
}
你解决这个问题的方式非常简单,所以它不是一个真正的C++问题。在C++中,通常使用'std :: string'和/或专门设计的类而不是普通的'char'-数组。 – leftaroundabout