Вывести индекс массива в функции переменной - PullRequest
0 голосов
/ 21 апреля 2019

Я хочу напечатать индекс в массиве со случайным. Но я не могу.

main.c:

RastgeleKarakter randomB = overload5_specifiedRandom(6,'g','y','u','c','n','e');

RastgeleKarakter.c

RastgeleKarakter overload5_specifiedRandom(int args,...){
  va_list list;
  va_start(list, args);
  char array[7];
  char* test;
  int sayi = (int) ((Now())%args);
  for(int i = 1; i <= args; i++){
    array[args] = (char) va_arg(list,int);
    printf("%c ", array[args]);
  } 
  printf("%d",sayi);
  va_end(list);
}

Out:

g y u c n e 3╝

Я хочу это:

'u' or 'g' or 'c' 

1 Ответ

2 голосов
/ 21 апреля 2019
char array[7];
  ...
for(int i = 1; i <= args; i++){
  array[args] = (char) va_arg(list,int);
  printf("%c ", array[args]);

если аргументов слишком много, вы выходите из массива 1005 * с неожиданным поведением

очень вероятно, что вы хотели array[i], а не array[args], иначе нет никакой причины иметь массив, и его можно заменить на char c;

Из:

г ч ю н е н ь

Я хочу это:

'u' или 'g' или 'c'

нет теста для записи или нет (char) va_arg(list,int); (забывая о вероятной проблеме в индексе), так как вы надеетесь не написать все из них?

...