Wątek przeniesiony 2018-03-23 21:00 z C/C++ przez kq.

Przekazanie tablicy dwuwymiarowej do funkcji

0

Mam taki mały przykład edukacyjny. Niestety dostaję Segmentation fault i nie do końca wiem dlaczego. Jak przekazać taką tablicę do funkcji?


#include <stdio.h>

char arr1[3][20] = {"Ala", "ma", "kota"};
char arr2[3][20] = {"Kot", "ma", "Ale"};
                
void print(int argc, char *argv[]);

int main()
{
    print(3, arr1);
    print(3, arr2);

    return 0;
}

void print(int argc, char *argv[])
{
    for(int i=0; i<argc; i++)
    {
        printf("%s\n", argv[i]);
    }
}

Prototyp funkcji zmienić się nie może, a tablica arr1 i arr2 musi być tworzona bez malloca.

1

Funkcja print spodziewa się tablicy wskaźników, a ty przekazujesz tablicę tablic.

char* arr1[3] = {"Ala", "ma", "kota"};
char* arr2[3] = {"Kot", "ma", "Ale"};

1 użytkowników online, w tym zalogowanych: 0, gości: 1