Wpis z mikrobloga

Błąd (aktywny) E0144 nie można użyć wartości typu "void *" do zainicjowania jednostki typu "int *"
Błąd (aktywny) E0020 identyfikator "SIZEOF" jest niezdefiniowany ConsoleApplication3
Błąd (aktywny) E0020 identyfikator "INT" jest niezdefiniowany ConsoleApplication3
Błąd (aktywny) E0020 identyfikator "N" jest niezdefiniowany ConsoleApplication3

@wytrzzeszcz: przepraszam że męczę, ale pierwszy raz spotykam się z takim zapisem (nie siedzę długo w C++), dodałem biblioteki stdio.h i stdlib.h tak jak tutaj http://www.cplusplus.com/reference/cstdlib/malloc/ ale nadal błędy
@Locked1986: to raczej było C sorka i powinno być
int* WYNIK=(int*)malloc(sizeof(int)*n); // uwaga może się nie powieść i wtedy WYNIK=null
(gdy nie potrzebny free(WYNIK););
w C++
int* WYNIK= new int[n];
(gdy nie potrzebny delete[] WYNIK;
@wytrzzeszcz: dla potomnych znalazłem dlaczego tak się dzieje:

In C++, variable length arrays are not legal. G++ allows this as an "extension" (because C allows it), so in G++ (without being -pedantic about following the C++ standard), you can do:

double a[n]; // Legal in g++ (with extensions), illegal in proper C++

http://stackoverflow.com/questions/15013077/arrayn-vs-array10-initializing-array-with-variable-vs-real-number

Ten zapis:

int* WYNIK= new int[n];

działa. Dzięki :) !
@pingwindyktator: ciekawie z tym VLA, bo niektóre strony uczą takiego zapisu:

int n = 5;

int tablica[n];

na samym początku nauki tablic (a zapis wydaje się łatwy i prosty). Nie będę wklejał linkami gdzie tak jest, ale ostatni raz szukałem kursów na polskich stronach...