Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

sprawdzenie kodu w jezyku c

adzik5115 09 Sty 2014 14:43 696 3
  • #1 09 Sty 2014 14:43
    adzik5115
    Poziom 1  

    witam zrobiłem taki program :

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Jak wstawić warunek żeby nie można było zostawić pustego pola ? np ja ktoś nie wpisze jakiegoś słowa żeby zakończył program ? Proszę o pomoc

    0 3
  • #3 09 Sty 2014 20:08
    Krzysztof Gustaw
    Poziom 23  

    Witam!
    1) Żle zdefiniowana struktura!
    Pola tejże struktury zostały zadeklarowane jako 10-cio elementowe tablice wskaźników do elementów typu char a nie jako dziesięcioelementowe tablice znaków. Musisz usunąć "gwiazdki".
    2) Po każdej instrukcji scanf badaj:
    if (slowka.slowoX[0] == '\0') /* ZLE! */
    Pozdrawiam
    KG

    0
  • #4 11 Sty 2014 02:42
    bomkallo
    Poziom 11  

    Struktura może być Ok, jezeli:
    1. Po stworzeniu obiektu dynamicznie przydzieli pamięć do conajmniej 1 indeksu tablic struktury. (slowka.slowo[0] = (*char)malloc(100))
    2. Podczas przetwarzania w scanf wykorzysta odpowiedni indeks tablicy w głównym obiekcie i odniesie się do rzeczywicie istniejącego miejsca w pamięci.

    Podstawowy błąd to złe wcięcia i brak zainicjowanej pamięci w stworzonej strukturze.
    Proponuję statyczną formę:
    struct nazwa
    {
    <wciecie 4znaki> char s1[20];
    <wciecie 4znaki> char s2[20];
    <wciecie 4znaki> char s3[20];
    };

    :)

    0