ďťż

Ładny brzuch

w tablicy typu intint dane[15]bede przechowywal dane, ale niewiem ile ich bedzie, czy jest jakis sposób na pozbycie sie liczby elementów w nawiasach kwadratowych i podczas programu juz dopisywanie kolejnych indeksów na bierząco?



Nie wiem, czy dobrze zrozumaiłem, ale wydaje mi się, że w nawiasie powinieneś wpisać MAXINT.

Nie wiem czy w c jest coś takiego, ale w Delphi są tzw. tablice dynamiczne...
W c też chyba są...migajek powinien wiedzieć :P


Nie wiem, czy dobrze zrozumaiłem, ale wydaje mi się, że w nawiasie powinieneś wpisać MAXINT.




w tablicy typu intint dane[15]bede przechowywal dane, ale niewiem ile ich bedzie, czy jest jakis sposób na pozbycie sie liczby elementów w nawiasach kwadratowych i podczas programu juz dopisywanie kolejnych indeksów na bierząco?


...

Tablica dynamiczna w Dlephi to taka, której wielkośc możesz zmieniać w czasie programu.


Niemam teraz czasu za bardzo aby przetestowac. Chcialem sie jeszcze teraz o cos spytac. Czy moge stworzyc cos takiego, tyklo zamiast int dac swoja strukture?
struct struktura{                int x, y, z; }; vector<struktura> tablica;
i jesli tak, to jak teraz dopisac dane na koncu tablicy do zmiennej np. x?

I jeszcze chcialbym sie nieco wiecej dowiedziec o tych tablicach dynamicznych, co to jest?

napisalem:
#include <vector> struct WIERZCHOLEK { FLOAT x, y, z; //pozycja wierzchołka FLOAT kolor; // współrzędne mapowania tekstury }; vector<WIERZCHOLEK> wierzcholki;

a kompilator wywala mi taki bład:
--------------------Configuration: Direct3D - Win32 Debug-------------------- Compiling... WinMain.cpp D:\Programy\Visual c++\MSDev98\MyProjects\Direct3D game\WinMain.cpp(296) : error C2065: 'vector' : undeclared identifier D:\Programy\Visual c++\MSDev98\MyProjects\Direct3D game\WinMain.cpp(296) : error C2275: 'WIERZCHOLEK' : illegal use of this type as an expression        D:\Programy\Visual c++\MSDev98\MyProjects\Direct3D game\WinMain.cpp(74) : see declaration of 'WIERZCHOLEK' D:\Programy\Visual c++\MSDev98\MyProjects\Direct3D game\WinMain.cpp(296) : error C2065: 'wierzcholki' : undeclared identifier Error executing cl.exe. Direct3D game.exe - 3 error(s), 0 warning(s)

mam gdzies blad? przed tymi zmianami wszystko dzialalo

using namespace std; pod include oczywiście :P

//Edit:
struct WIERZCHOLEK {   FLOAT x, y, z; //pozycja wierzchołka   FLOAT u,v;// współrzędne mapowania tekstury     DWORD kolor; //Kolor   const fvf; //FVF }; const WIERZCHOLEK::fvf = D3DFVF_XYZ | D3DFVF_DIFFUSE |D3DFVF_TEX0;
Nie lepiej ? Nawet nie wiem czy to będzie działać(mogłem pomieszać kolejność), ale idee zaprezentowałem :)
Użytkownik Zombiak edytował ten post 03 marzec 2005, 21:40
ok, teraz juz tego bledu niema, ale mam kolejny problem. Chcialem napisac funkcje która by dopisywala do tego wektora dane, jak to zrobic? Funkcja ma pobierac wskaznik do wektora i dopisywac sama indexy. Jak powinien wygladac nagłówek takiej funkcji?

Tak na marginesie, nie wiem czy robienie vertex buffera na vectorach to jest dobry pomysł...


Tak na marginesie, nie wiem czy robienie vertex buffera na vectorach to jest dobry pomysł...

Tylko, żę z vectorm chyba nie da się zrobić numeru z memcpy(). Musiał byś lecieć iteratorem i ręcznie(element po elemencie) wpisywać do bufora.Już nie mówie o modyfikacji między klatkami...


Tylko, żę z vectorm chyba nie da się zrobić numeru z memcpy(). Musiał byś lecieć iteratorem i ręcznie(element po elemencie) wpisywać do bufora.Już nie mówie o modyfikacji między klatkami...


moze ktos w takim razie powiedziec cos o tych tablicach dynamicznych? czy da sie to wczytac za pomoca memcpy? dowolna ksiazka/kurs podstaw c++ powinien pomoc :)
nie wiem tez czemu nikt wczesniej ci nie napisal jak sie dynamiczne tablice tworzy/uzywa ;)
int size = 10;             // pewien rozmiar int* tab = new int [size]; // tworzenie tablicy for (int i = 0; i < 10; i++ ) {   tab[i] = i;             // uzywanie tablicy } // inne operacje delete[] tab;              // zwalnianie pamieci


using namespace std; pod include oczywiście :P

//Edit:
struct WIERZCHOLEK {   FLOAT x, y, z; //pozycja wierzchołka   FLOAT u,v;// współrzędne mapowania tekstury     DWORD kolor; //Kolor   const fvf; //FVF }; const WIERZCHOLEK::fvf = D3DFVF_XYZ | D3DFVF_DIFFUSE |D3DFVF_TEX0;
Nie lepiej ? Nawet nie wiem czy to będzie działać(mogłem pomieszać kolejność), ale idee zaprezentowałem :)

sory ze tak ciagle odswierzam ten temat ale mialem ostatnio malo dostepu do komputera, czyli tablic dynamicznych urzywa sie mniejwiecej tak?
WIERZCHOLEK* wierzcholki2; // tworzenie tablicy int ilosc_wierzcholkow; //ilosc elementów tablicy wyzej wierzcholki2 = new WIERZCHOLEK[]; ilosc_wierzcholkow++; wierzcholki2[ilosc_wierzcholkow-1].x=1; wierzcholki2[ilosc_wierzcholkow-1].y=1; wierzcholki2[ilosc_wierzcholkow-1].z=1; wierzcholki2[ilosc_wierzcholkow-1].kolor=0xff0000ff; delete [] wierzcholki2;
wszystko sie fajnie kompiluje, ale gdy program podczas dzialania dochodzi do funkcji delete to wyswietla sie blad "Microsoft VisualC++ Debug Libary"

aha, i jeszcze jedno pytanie - czemu nie dziala zapis[code]wierzcholki2[0]=0.0f, 15.0f, 0.0f, 0xffff0000;[\code]?
Użytkownik mark_ edytował ten post 05 marzec 2005, 00:14
juz wszystko naprawilem, ale kolejny problem. jak przerobic ta funkcje aby wczytywala tablice dynamiczna?
VOID* pVertices; if( FAILED( g_pVB->Lock(0, sizeof(wierzcholki),(void**)&pVertices,0))) return E_FAIL; memcpy( pVertices, wierzcholki, sizeof(wierzcholki) ); g_pVB->Unlock();
Użytkownik mark_ edytował ten post 05 marzec 2005, 00:37

w tablicy typu intint dane[15]bede przechowywal dane, ale niewiem ile ich bedzie, czy jest jakis sposób na pozbycie sie liczby elementów w nawiasach kwadratowych i podczas programu juz dopisywanie kolejnych indeksów na bierząco?

sory ze tak namotalem w tym topicu. juz udalo mi sie wszystko naprawic, urzylem tablic dynamicznych. dzieki wszystkim za pomoc


juz wszystko naprawilem, ale kolejny problem. jak przerobic ta funkcje aby wczytywala tablice dynamiczna?
VOID* pVertices; if( FAILED( g_pVB->Lock(0, sizeof(wierzcholki),(void**)&pVertices,0))) return E_FAIL; memcpy( pVertices, wierzcholki, sizeof(wierzcholki) ); g_pVB->Unlock();

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •