Nie o to chodziło. Ty stworzyłeś dynamicznie tablicę 10 elementową na obiekty struktury SS i syworzyłeś zmienną wskaźnikową do której przypisałeś adres poczatku tablicy.
Gdzie tu masz tablicę na N wskaźników?
Wersja do druku
no dla mnie powinno być coś takiego:
O ile jest poprawnie to zastanawia mnie dalsze polecenie:Cytuj:
#include <iostream>
using namespace std;
struct znaki
{
int x;
char y;
double z;
};
// FUNKCJE \\
int* losowanie(int n){
int* tab = new znaki int[n];
}
int main() {
int n=10; // zmienna n zostanie wczytana z pliku
losowanie(n);//wywołanie funkcji
return 0;
}
Nie proszę o gotowy kod tylko o tipy, chciałbym to zrobić samemu.Cytuj:
następnie alokuje kolejno N struktur, przypisując uzyskane adresy do kolejnych komórek utworzonej tablicy. Pole typu int (32 bity) jest ustawiane na wartość losową pomiędzy 0 a 10 000 000; pole typu char ustawienie losowe a-z, double ustawione na 8;
@3xUP
Kompletnie nie rozumiem tej części, tu chodzi po prostu o wypełnienie struktury forem ? domyślam się jak to zrobić odwołać się do każdego pola struktury w forze tab.x[i]= rand () % 10 000 000 (mógłbym chyba też zapisać to w notacji ?-10e6), znaki bym zrobił z kodu ASCII małe litery to były z przedziału <97;122> no i double po prostu przypisać.Cytuj:
następnie alokuje kolejno N struktur, przypisując uzyskane adresy do kolejnych komórek utworzonej tablicy.
Spróbuj to przez analogię zrozumieć możesz stworzyć obiekt normalnie i posługiwać się jego nazwą. Albo możesz go zrobić dynamicznie, wtedy nie masz jego nazwy i żeby w ogóle móc się nim posługiwać musisz mieć wskaźnik do niego. Tutaj masz 2 przykładowe analogie:Cytuj:
Nie proszę o gotowy kod tylko o tipy, chciałbym to zrobić samemu.
1
2Cytuj:
int a; - tworzysz obiekt int
int *wa; - nie tworzysz obiektu int, tworzysz tylko wskaźnik
wa = new int; - dopiero teraz tworzysz obiekt, nie ma on nazwy więc masz tylko wskaźnik wa żeby się do niego dostać
Tablicę na 5 wskaźników do obiektów typu int można zrobić w taki sposób:Cytuj:
int tab[5]; - tworzysz tablice na 5 obiektow typu int
int* wtab; - tworzysz wskaźnik na element int
wtab = new int[5]; - tworzysz tablice i adres jej początku przypisujesz do wskaźnika
int* tablica[5];
Można to też zrobić dynamicznie. Zrób to samemu dynamicznie żeby mieć wskaźnik na początek tablicy wskaźników powiedzmy 5 elementowej.
:P
struct znaki **tab << wywal struct
Po usunięciu dalej to samo :(.Cytuj:
error C2226: syntax error : unexpected type 'znaki'
Daj cały kod, ok?
Bitte
Kod:#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
//Struktura:
struct znaki {
char x;
int y;
double z;
};
// FUNKCJE \\
znaki ** losowanie(int n) {
znaki (**tab) = new znaki *[n]; //wskaźnik na wskaźnik tablicy struktur
for ( int i=0 ; i<n ; i++) { //przypisanie struktury do tablicy wskaźników
tab[i] = new (znaki);
}
//srand(time(0)); //pseudolosowość liczb uzależniona od czasu rzeczywistego
srand((unsigned)time(NULL));
for ( int i=0 ; i<n ; i++) {
tab[i]->x = rand() % (10000000) + 0; // czy nie mogę w notaji zapisać?
tab[i]->y = rand() % (26) + 97;
tab[i]->z=8;
}
return tab ; //zwraca adres tablicy
}
int kasowanie(znaki* tab, int n) {
for ( int i=0 ; i<n ; i++) {
delete tab[i];
delete [] tab;
}
int main()
{ int n=266667;
losowanie(n);
cout<<n<<endl;
getchar();
getchar();
return 0;
}
ale żeś kurwa wyczarował ;D po co tam int stoi, powiesz nam?
skoro nie chciałes kodu to czytaj:
http://stackoverflow.com/questions/1...inter-arrays-c
@4xUP
to już dawno poprawiłem, tylko nie aktualizowałem kodu na forum :)).
I poraz kolejny z dupy nazwy zmiennych. 2015 a ludzie nadal uzywaja w przykladach zmiennych x y z i n tab.
Chwala bogu ze przynajmniej znaki jest a nie "s" od struct. Mimo ze po polsku to milion razy lepiej niz 1 literka.
O ile w zmiennych pozycyjnych - osie x,y,z maja sens. To tutaj latwiej by sie to czytalo z dluzszymi jednoznacznymi nazwami.
od netbeansa to ty się odtegoten :p
Przecież to najgorsze ide od 1410.
a widziałeś ty kiedyś eklipsa? visual studio? eee... jakie jeszcze ide tam są? xD
tylko jetbrainsi i embarcadero robią lepsze
do javy tylko eklips do reszty visual tu nie ma nawet co dilowac
Eklpis może i ma swoje wady, ale srsly nie rozumiem jak można wybrać nb nad eklipsa xD
Ta. visual pół poziomu, eclipse jeden poziom wyżej od netbeansa. Jetbrainsy to inna dyscyplina.
kurwa. dwa projekty rozgrzebane magisterka czeka a ja tu robie guwnoburze o ide xd
Woda na młyn.
W jakimś języku albo guidzie zaleca się używanie tabów zamiast spacji do wcięć?
Kurde, co robi coś takiego ">>=" w c++?
poniżej kod przedstawiający liczbę w postaci potęgi liczby 2 w której jest on użyty
Kod:#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
int exp = 0;
int rem = x;
while (rem % 2 == 0) {
rem >>= 1;
exp++;
}
if (exp > 0) {
cout << x << " = " << "2^" << exp;
if (rem > 1) cout << "*" << rem;
}
else {
cout << x << " to liczba nieparzysta" << endl;
}
getchar();
getchar();
return 0;
}
Prykłem z jsa xD
Ja pierdole xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD DDDDDDD
Najlepszy film dotyczacy bugow programowania ever.
Dobra panowie, pytanie od kompletnego nooba.
gdy wpisuje to w kompilator (devc++ i codeblocks)Kod:#include <iostream.h>
main()
{
cout << "Tekst";
}
wyskakuje mi na codeblocks
http://screenshu.com/static/uploads/.../6r/tc7njs.jpg
a w devc++ wyskakuje mi błąd w którym jest napisane coś o przestarzałości(teraz nie przytoczę, bo musiałbym uruchomić kompa ponownie bo devc++ nie kompiluje na win10)
czemu?
#include <iostream>
http://screenshu.com/static/uploads/.../4k/vf6ltp.jpg
teraz wyskakuje mi to :|
zmieniłem rozszerzenie pliku na cpp i prawie śmiga, z tym że musiałem zmienić cout na std::cout i nie wyświetla napisu.
A pojawia się jakieś okienko?
W danych czasach trzeba było dodać na końcu system("pause"); albo coś takiego ;d
build error to build error
w ogóle budujesz to jako cppp czy jednak jako c?
i to nie dev cpp nie działa tylko stary mingw, jak zaktualizujesz to pójdzie (tylko w sumie po co skoro środowisko upośledzone...)
Nie no, nie ma build errora, skoro mu się odpaliło, ale nie pokazało napisu.
csii, po 8h w pracy czytam tylko komunikaty błędów :p
Ogólnie, to na podstawach programowania mam pisać tylko w c na początku, ale nie mogę znaleźć żadnej przystępnej książki o programowaniu c dla świeżaków, więc ogarnąłem co się da. Co do środowiska, to dev cpp zaproponował wykładowca, żeby cała grupa się uczyła na jednym, ale mi na win10 nie śmiga, więc najczęściej piszę na codeblocks.
jak chcesz dev cpp to już chyba lepiej te nieoficjalne wersje by orwell ;p
http://orwelldevcpp.blogspot.com/
chociaż jest miliard lepszych IDE
@Brutalny Rzeznik ;
Dlaczego używasz biblioteki iostream przy języku C? Ja na pierwszym semestrze uczyłem się C z książki "Język ANSI C" autorstwa Dennisa Ritchie.
już na 8 ten antyczny mingw nie działał to się nie dziw że na 10 nie chce
c::b to dobry wybór, domyślnie też używa mingwa a na początkowym poziomie nie trafi ci sie kod niezgodny ze starą
z c najważniejsze rzeczyto podstawowa składnia, zarządzanie pamięcią (te same funkcje w cpp działają inaczej i raczej się ich nie używa! ale jak masz pisać w c to pewnie będziesz musiał opanować)
poza tym to musisz myśleć co robisz bo bardzo łatwo się robi paskudnie