как устранить ошибку из-за объявления значения массива по умолчанию в функции

#c

Вопрос:

Я создал калькулятор рядов Фибоначчи ( fibo ), но он вызывает ошибку

 #include lt;iostreamgt; #include lt;cstringgt; using namespace std;  struct numtag {  unsigned long num;  char tag[60]; };  char *primality(const unsigned long,unsigned long i=0); numtag *fiboPrime(const unsigned long,unsigned long i=0,numtag fibo[]={{0,primality(0)},{1,primality(1)}});    int main(){};  char *primality(unsigned long p,unsigned long i) {  if(plt;=1)  return "NEITHER PRIME NOR COMPOSITE";  else if(p==2||p==3)  return "tPRIME";  else if(p%2==0||p%3==0)  return "tCOMPOSITE";  else if(nlt;5)  i=5;  if(i*ilt;=p)  if(p%i==0||p%(i 2)==0)  return "tCOMPOSITE";  else  return primality(p,i 6);  else  return "tPRIME"; }; numtag *fiboPrime(unsigned long n,unsigned long i,numtag *fibo){//I need to figure this out};  

Это приводит к ошибке: [Error] could not convert '{{0, primality(0, 5)}, {1, primality(1, 5)}}' from 'lt;brace-enclosed initializer listgt;' to 'numtag*'

Пожалуйста, Помогите Мне

Комментарии:

1. C-массивы нельзя копировать, использовать std::array или std::vector заменять.

2. Литерал C-строк есть const char[N] , поэтому возвращайте const char* вместо char* .

3. Это не связано со строковыми литералами/ Это связано с массивом numtag в функции fiboPrime

4. Вы не можете инициализировать tag массив с помощью char* . Просто делай, как говорит Джарод 42.

5. Я не могу инициализировать массив в объявлении функции. Даже массив int не работает