Aktywne Wpisy
![czerwonykomuch](https://wykop.pl/cdn/c0834752/c97a7d716817e5f4761345827634e42a3fc2eae81b2e442d181c8db36d4ac26a,q60.jpg)
czerwonykomuch +195
35 lat kapitalistycznej propagandy tak bardzo poryło mózgi pracowników, że chcą oni - z własnej woli - spędzać w pracy więcej czasu za to samo wynagrodzenie.
Tak, dobrze czytasz. 23,9% obywateli jest zdecydowanie przeciwna skróceniu tygodnia pracy do 4 dni przy zachowaniu tego samego wynagrodzenia. 15% raczej przeciwna. Wśród trzydziestolatków, którzy powinni już przecież coś tam ogarniać i nie nabierać się tak łatwo na kapitalistyczne brednie, 52% woli pracować dłużej za to
Tak, dobrze czytasz. 23,9% obywateli jest zdecydowanie przeciwna skróceniu tygodnia pracy do 4 dni przy zachowaniu tego samego wynagrodzenia. 15% raczej przeciwna. Wśród trzydziestolatków, którzy powinni już przecież coś tam ogarniać i nie nabierać się tak łatwo na kapitalistyczne brednie, 52% woli pracować dłużej za to
![czerwonykomuch - 35 lat kapitalistycznej propagandy tak bardzo poryło mózgi pracownik...](https://wykop.pl/cdn/c3201142/7ddbb318664a00e5ba6a491c8e9b397a254395d6debdbe920400115b93f0c945,w150.jpg)
źródło: IMG_0473
Pobierz![placebo_](https://wykop.pl/cdn/c3397992/placebo__ilsWu7T3NZ,q60.jpg)
placebo_ +327
baza #bekazpalaczy #polska
![placebo_ - baza #bekazpalaczy #polska](https://wykop.pl/cdn/c3201142/676561ed865a28553a0bc1ba66288701c7434ae32c9ec5a634267ff1a066e747,w150.jpg)
źródło: temp_file6742735397604588003
Pobierz
scanf("%d", &x); //liczba wierszy
scanf("%d", &y); //liczba kolumn
int tab[x][y];
Jakim cudem to u mnie działa? Nie powinienem użyć operatora new albo malloca?
#naukaprogramowania #jezykc #c++
@damienbudzik: Powinieneś. Albo jak c++ std::vector.
Co to znaczy "nie działa"?
Nie kompiluje się?
Nie daje wyniku?
Daje zły wynik?
Komputer pokopał Cię prądem? Stanął w płomieniach?
Komentarz usunięty przez moderatora
@okpaj: w pamięci
@Marcin648: nie pisałem nic w cpp od wieków, ale przeciez malloca używa się do "inicjalizacji" wskaźników, a nie zmiennych automatycznych na stosie
-std=c++14
to się nie skompiluje.@damienbudzik: aa, tu był problem, przepraszam za zamieszanie
Biorę najpierw oryginalny kod OPa i kompiluję go jako program C:
gcc prog.c -Wall -o prog
Jedyny warning jaki dostaję dotyczy nieużywanej zmiennej tab. Errorów brak.
Skąd kompilator wie ile pamięci zarezerwować dla tablicy int tab[x][y] skoro jej rozmiar na etapie kompilacji nie jest znany?
Ten sam program
Kompilator widzi, że nie zna wielkości tablicy, więc generuje kod dla tablicy o tablicy o dynamicznej wielkości.
sizeof
takiej tablicy nie jest np. stałą kompilacji.Jeśli chodzi o C++, to, heh bez
-pedantic-errors
gcc nie daje błędów :/ (a z samym-pedantic
jest warning).@KrzaQ2: gcc version 5.4.0 20160609 na Ubuntu.
Czyli jak rozumiem kompilator traktuje powyższy fragment jakoby tam zachodziła dynamiczna alokacja pamięci, ale w żaden sposób o tym nie poinformuje?
W przypadku g++ flaga -pedantic-errors faktycznie załatwia sprawę, ale gcc przynajmniej w mojej wersji dalej nie widzi problemu
-std=c89
).Standard C nie definiuje jak ma być alokowane VLA, więc raczej spodziewałbym się (i tak pokazuje fragment z compiler explorera) że będzie to alokacja na stosie, tak jak byś użył
alloca
Dzięki za czas i wyjaśnienie ;)
https://webinaria.proidea.pl/webinaria/c/