• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przekazywanie calej tablicy znakow do funkcji i kod sprawdzajacy pokrewnosc dwoch tablic

VPS Starter Arubacloud
0 głosów
355 wizyt
pytanie zadane 31 października 2017 w C i C++ przez Dordonmegazordon Początkujący (350 p.)
edycja 31 października 2017 przez Eryk Andrzejewski

Dobry wieczór, piszę prosty program w ramach nauki. Program ma na celu wygenerowanie hasła które następnie ma zostać złamane. Napotkałem na dwa problemy:

  • nie wiem jak przekazać całą tablicę do funkcji.
  • po wygenerowaniu hasła program przestaje działać.

Bardzo proszę o pomoc i ocenę kodu.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void lamaieHasla(int, char);
int main()
{
    //-----------------------TWORZENIE-TABLICY-ZNAKOW-O-OKRESLONYM-ROZMIARZE---------
    puts("podaj wielkosc lancucha znakow");
    int i;
    int wielkosc;
    scanf("%d", &wielkosc);
    int *W_wielkosc = &wielkosc;
    char gem[*W_wielkosc] ;
    srand( time( NULL ) );
    //----------------------LOSOWANIE-ZNAKOW-PRZYPISANIE-ICH-DO-TABLICY---------------
    for(i=0, puts("trwa generowanie lancucha"); i!=*W_wielkosc; i++)
    {
        gem[i]=(char)(rand()%10)+100;

    };
    //-----------------------------WYPISANIE-TABLICY-ZNAKOW---------------------------
    int j;
    for(j=0,puts("twoje haslo"); j!=*W_wielkosc; j++)
    {
        printf("%c",gem[j]);
    }
    puts("\n");
    //------------------------PROBA-WYGENEROWANIA-IDENTYCZNEJ-TABLICY-----------------
    puts("trwa lamanie hasla");
    char haslo[*W_wielkosc];
    do
    {
        int g;
        haslo[g]=(char)(rand()%10)+100;
        g++;
    }
    while(haslo[*W_wielkosc]!=gem[*W_wielkosc]); 
    printf("%c", &haslo);


//lamanieHasla(*W_wielkosc,gem[0]);

    return 0;
}
//--------------------FUNKCJA-DO-KTOREJ-NIE-POTRAFILEM-PRZEKAZAC-CALEJ-TABLICY------------
//void lamanieHasla(int wielkosc, char generowany)
//{
//    char haslo[wielkosc];
//   do{

//haslo[0]=(char)(rand()%10)+100;

//  } while(haslo!=generowany);
//printf("%c",haslo);
//};

 

1 odpowiedź

+1 głos
odpowiedź 31 października 2017 przez lb478 Użytkownik (940 p.)

Coś zdaje mi się że w tym leży problem: http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Przekazywanie-tablic-jednowymiarowych-do-funkcji/324 - zobacz w deklarację funkcji lamanieHasla().

@EDIT

Prosisz jeszcze o ocenę kodu.
Jak dla mnie troszkę jest nieczytelny, ale to tam ja też mam swoje problemy jeśli chodzi o czytanie ;)
Jak na naukę to widać że się starasz, więc ucz się ucz. Ja też pisałem takie o żeby cokolwiek się nauczyć i się przyznam, że nadal to robię, ale właśnie przez to że zacząłem od takich małych projektów jestem wstanie teraz coś większego robić. 

komentarz 31 października 2017 przez Dordonmegazordon Początkujący (350 p.)

Dzięki za opinię. Przeczytałem rozdział kursu niby udało się skompilować, dowiedziałem się również, że przekazując tablice pracujemy na oryginale, i tu jest kolejny problem jeśli faktycznie pracujemy na oryginale to czemu nie mogę wyświetlić przekazanych danych. Zostaje wyświetlony napis "twoje haslo" po czym program się wysypuje.

void lamanieHasla(int wielkosc, char generowany[])
{
    int g;
      for(g=0,puts("twoje haslo"); g!=wielkosc; g++)
    {
        printf("%c",generowany[g]);

    }
};

 

Przekazanie wygląda następująco 

lamanieHasla(*W_wielkosc, gem[*W_wielkosc]);

Przekazanie bez podania wielkości nie kompilowało się

void sposob_2( int tablica[] );

 

Podobne pytania

0 głosów
1 odpowiedź 233 wizyt
pytanie zadane 22 grudnia 2017 w C i C++ przez lambdag Obywatel (1,310 p.)
0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 12 listopada 2020 w C i C++ przez rain.deer Początkujący (430 p.)
0 głosów
2 odpowiedzi 865 wizyt
pytanie zadane 1 października 2017 w C i C++ przez qlucha Obywatel (1,790 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...