Как запустить случайную функцию с помощью указателей на функции - PullRequest
0 голосов
/ 02 марта 2019

Я делаю викторину и хочу задавать случайные вопросы, которые у меня есть в функциях.Я создал этот код в качестве теста. Это не те функции, которые я бы запустил:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int N = 3;
void (*func_ptr[3]) = { moreInformation, startofgame, level1}; [rand() % N]();

, но каждый раз, когда я запускаю его, я получаю сообщение об ошибке, указывающее, что я должен поместить идентификатор в последнюю пару скобок,Есть ли другой способ сделать это или что я должен поставить в качестве идентификатора в скобках.

1 Ответ

0 голосов
/ 02 марта 2019

Я не знаю, квалифицируется ли это как «другое и лучшее», но это простой и понятный рабочий пример.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void question1(void) {
    puts("Question 1");
}

void question2(void) {
    puts("Question 2");
}

void question3(void) {
    puts("Question 3");
}

void (*function_ptr[3])(void) = {question1, question2, question3 };

int main(void)
{
    srand((unsigned)time(NULL));
    (*function_ptr[rand() % 3])();
    return 0;
}
...