Проблема с вызовом функции? - PullRequest
1 голос
/ 23 июля 2010

Если у меня есть эти функции:

void main(void)
{
    char *menu[] = {"data", "coming", "here"};

    prints(**************); // here

    printf("\n");

}




void prints(char **menu)
{
    int a;
    while(*menu)
    {
        printf("%s", **menu);
        menu ++;
    }

    a = 0;
}

Как вызвать функцию распечатки ???

Ответы [ 3 ]

4 голосов
/ 23 июля 2010

Вот версия с несколькими исправленными проблемами:

#include <stdio.h>

// declare function before using it
void prints(char **menu)
{
    // make sure parameter is valid
    if (menu != NULL)
    {
        while(*menu)
        {
            // spaces so they don't run together
            // pass *menu not **menu to printf
            printf("%s  ", *menu);
            menu ++;
        }
    }
}

// proper return type for main()
int main(void)
{
    // array terminator added
    char *menu[] = {"data", "coming", "here", NULL};

    prints(menu); // here

    printf("\n");

    // return with no error
    return 0;
}
0 голосов
/ 23 июля 2010

Вы можете переместить функцию prints выше main или поставить прототип для prints выше основного, например:

void prints(char **menu);

Затем вы можете вызвать prints из main, как и любую другую функцию ...

0 голосов
/ 23 июля 2010

В C вы должны объявить свою функцию перед другой функцией, которая ее использует.Итак ...

void prints(char **menu)
{
    int a;
    while(*menu)
    {
        printf("%s", **menu);
        menu ++;
    }

    a = 0;
}

void main(void)
{
    char *menu[] = {"data", "coming", "here"};
    prints(**************); // here 
    printf("\n");
}

То есть, или вы можете переслать объявление функции:

void prints(char **menu);

void main(void)
{
    char *menu[] = {"data", "coming", "here"};
    prints(**************); // here 
    printf("\n");
}

void prints(char **menu)
{
    int a;
    while(*menu)
    {
        printf("%s", **menu);
        menu ++;
    }

    a = 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...