在可变函数中打印数组索引

时间:2019-04-21 12:48:58

标签: c arrays random indexing variadic

我想随机打印数组中的索引。但是我不能。

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);
}

出局:

g y u c n e 3╝

我想要这个:

'u' or 'g' or 'c' 

1 个答案:

答案 0 :(得分:2)

char array[7];
  ...
for(int i = 1; i <= args; i++){
  array[args] = (char) va_arg(list,int);
  printf("%c ", array[args]);

如果有太多参数,您会出于意外行为退出 array

您很可能希望使用array[i]而不是array[args],否则根本没有理由拥有一个数组,可以将其替换为char c;

  

出局:

     

g u c n e3╝

     

我想要这个:

     

'u'或'g'或'c'

没有编写或不编写(char) va_arg(list,int);的测试(忘记了索引中可能出现的问题),那么您如何希望不编写所有这些文字呢?