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

Malloc linux

Object Storage Arubacloud
+1 głos
161 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ź 340 wizyt
pytanie zadane 25 sierpnia 2020 w C i C++ przez fortuna Początkujący (310 p.)
0 głosów
0 odpowiedzi 123 wizyt
0 głosów
1 odpowiedź 621 wizyt
pytanie zadane 25 listopada 2017 w C i C++ przez Krótki Użytkownik (760 p.)

92,563 zapytań

141,416 odpowiedzi

319,596 komentarzy

61,948 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...