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

Malloc linux

VPS Starter Arubacloud
+1 głos
158 wizyt
pytanie zadane 19 stycznia 2017 w C i C++ przez Dynamic Bywalec (2,910 p.)

Witam, mam taki kod: 

#include <stdio.h>
#include <math.h>

int a, b, n, i=0; licznik=0, liczba;

int main()
{
   printf("Podaj a: ");
    scanf("%d", &a);
    printf("Podaj b: ");
    scanf("%d", &b);
    printf("Podaj n: ");
    scanf("%d", &n);
    printf("\n");
    int *tab;
    tab=(int*)malloc(n*sizeof(int));
    for(i=0; i<n; i++)
    {
        printf("Liczba %d: ", i+1);
        scanf("%d", &liczba);
        if((liczba%2==0)&&(liczba>=a && liczba<=b))
        {
            tab[i]=liczba;
            licznik++;
        }
    }
    if(licznik>0)
    {
        printf("\n");
        printf("Podano %d liczb sposrod nich %d liczby: ", n, licznik);
        for(i=0; i<n; i++)
        {
            if((tab[i]%2==0)&&(tab[i]>=a && tab[i]<=b))
                printf("%d i ", tab[i]);
        }
        printf("spelniaja warunki poniewaz sa parzyste i naleza do przedzialu <%d,%d> ", a, b);
        printf("\n");
    }
    else
    {
        printf("Podano %d liczb sposrod nich %d liczb spelnia warunek poniewaz nie sa parzyste lub nie naleza do przedzialu ", n, licznik);
    }
    return 0;
}

I bład w linuxie

1 odpowiedź

0 głosów
odpowiedź 19 stycznia 2017 przez mtk3d Nałogowiec (46,690 p.)

malloc jest w stdlib.h

#include <stdlib.h>

i tutaj masz błąd:

int a, b, n, i=0; licznik=0, liczba;

zmień na:

int a, b, n, i=0, licznik=0, liczba;

 

komentarz 19 stycznia 2017 przez Dynamic Bywalec (2,910 p.)
Moge wiedzieć dlaczego tak ?

Edit juz wiem
komentarz 19 stycznia 2017 przez efiku Szeryf (75,160 p.)
bo średnik ma znaczenie.
komentarz 19 stycznia 2017 przez unknown Nałogowiec (39,560 p.)

i tutaj masz błąd:

Zależy jaki standard C dla kompilatora jest default'owy. Jeśli C89 to nie jest to błąd. Jeśli nowszy to jest to błąd.

komentarz 19 stycznia 2017 przez mtk3d Nałogowiec (46,690 p.)
C89 nie wyrzuci błędu z powodu tego średnika?
komentarz 19 stycznia 2017 przez unknown Nałogowiec (39,560 p.)

Wyrzuci tylko warning:

warning: data definition has no type or storage class

Jest to spowodowane tym, że gdy definiujemy zmienną i nie podajemy jej typu to jest ona definiowana niejawnie jako zmienna typu int. W C99 zostało to wycofane i jest to już błędem.

komentarz 19 stycznia 2017 przez mtk3d Nałogowiec (46,690 p.)
Ok, dzięki za wyjaśnienie. Ale tutaj i tak na screenie ewidentnie wywaliło błąd.

Podobne pytania

0 głosów
1 odpowiedź 317 wizyt
pytanie zadane 25 sierpnia 2020 w C i C++ przez fortuna Początkujący (310 p.)
0 głosów
0 odpowiedzi 121 wizyt
0 głosów
1 odpowiedź 619 wizyt
pytanie zadane 25 listopada 2017 w C i C++ przez Krótki Użytkownik (760 p.)

92,452 zapytań

141,262 odpowiedzi

319,080 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!

...