invalid conversion from 'char' to 'char**'

0

Witam mam powyższy błąd w poniższym programie :D Polecenie: "W ciele funkcji int test () wywołana jest funkcja encrypt( char code[12] ) szyfrująca wartości elementów tablicy code[12] i konwertująca je na jedną wartość typu int , którą funkcja ma zwrócić.
Zadeklaruj tablicę char code[12] oraz zainicjuj jej elementy kolejnymi znakami hasła "kill them all". Pomiń spacje. Niewykorzystane elementy tablicy zainicjuj wartością 0." Program poniżej.

 int encrypt( char str[] );

int test()
{
    char code[12] = {'k', 'i', 'l', 'l', 't', 'h', 'e', 'm', 'a', 'l', 'l', 0};

    encrypt( code[12] );
    
    return 0;
} 

Najlepsze jest to że kilka dni temu dokładnie ten sam kod działał bez problemu :D

3
encrypt(code)

powinno być, bo jako argument przekazujesz tablicę.

encrypt(code[12])

oznacza że przekazujesz jako argument element tablicy o indeksie 12 (który nie istnieje, bo tablica twoja ma indeksy od 0 do 11)

0

Zmieniłam na 11. Niestety niezależnie od tego co wpiszę błąd nadal występuje :/ Wrzuciałam to też w pętlę...

 for(int i = 0; i < 12; i++)
        encrypt( code[i] );

... i niestety dalej to samo :<

0

przeciez wyzej dostales dokldana odpowiedz. Czytaj dopoki nie zrozumiesz (tam masz rowniez gotowca)
Nie da sie prosciej i jasniej, wiec czytaj dopoki nie zrozumiesz.

0

Masz przekazać tablicę, nie element tablicy.

encrypt(code)

I raz, a nie 12 razy.

0
twonek napisał(a):

Masz przekazać tablicę, nie element tablicy.

encrypt(code)

I raz, a nie 12 razy.

int encrypt( char* str[] );

int test()
{
    char code[12] = {'k', 'i', 'l', 'l', 't', 'h', 'e', 'm', 'a', 'l', 'l', 0};

    encrypt( code );
    
    return 0;
} 

Tym razem błąd: cannot convert 'char*' to 'char**' for argument '1' to 'int encrypt(char**)'

0

Dlaczego zmieniasz dobry kod w zły? Miałeś na początku

int encrypt(char str[]);
0

moze zacznij czytac jakis normalny kurs? Bo w ogole nie czytasz komunikatow kompilatora

char code[12] = {'k', 'i', 'l', 'l', 't', 'h', 'e', 'm', 'a', 'l', 'l', 0};

na koncu masz 0 zamiast znaku

do tego zmieniles deklaracje funkcji!

0

Nie mam zielonego pojęcia skąd tam się wziął ten wskaźnik :D. Dzięki za pomoc :D

0
fasadin napisał(a):

moze zacznij czytac jakis normalny kurs? Bo w ogole nie czytasz komunikatow kompilatora

char code[12] = {'k', 'i', 'l', 'l', 't', 'h', 'e', 'm', 'a', 'l', 'l', 0};

na koncu masz 0 zamiast znaku

do tego zmieniles deklaracje funkcji!

Proponuję zacząć czytać polecenia ze zrozumieniem ;) Poza tym 0 w tym przypadku oznacza "puste miejsce" czy też "brak znaku" mam wrażenie że nie masz pojęcia o czym mówisz :>

A użytkownikowi twonek niezmiernie dziękuję za świetną, trafną, precyzyjną, i błyskawiczną pomoc :>

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