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
@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++
@wytrzzeszcz: nie ma w C++11, nawet w C11 nie jest obligatoryjne by było, ale przynajmniej jest w C++11 nie ma i jest duża opozycja aby pojawiło siw w najbliższym czasie w standardzie C++. std::vector jest standardowym rozwiązaniem tutaj (jak wspomniał @pingwindyktator:
@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...
#przegryw Jedne z najlepiej wydanych pieniędzy w życiu zakup którego nie będę nigdy żałował a nawet bym dopłacił: nowe słuchawki. Tak to można słuchać, utwory które znałem nabrały nowego blasku. #wygryw
#programowanie
zamien na int* WYNIK=malloc(SIZEOF(INT)*N);
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
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;
http://stackoverflow.com/questions/15013077/arrayn-vs-array10-initializing-array-with-variable-vs-real-number
Ten zapis:
działa. Dzięki :) !
std::vector wynik
Tia ( ͡° ʖ̯ ͡°)
@Locked1986: @Kaczus2B:
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...
@pingwindyktator: zgadza się, pokazałem zreszta, jak niektórzy początkujący rozumieją ten zapis bezsensownie...