Nowe posty

Autor Wątek: Dynamiczne tworzenie wielowymiarowych tablic w C++  (Przeczytany 8366 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« dnia: 2005-11-04, 11:17:13 »
Siedze nad tym już od wczoraj, szukam, kombinuje i im więcej czytam tym mam większy orzech do zgryzienia. Moja dystrybucja to Slackware 10.2 a karta dźwiękowa - ISA PnP ESS1868. Chce ją zainstalować jakoś inaczej niż przez ALSA. W pliku /etc/rc.d/rc.modules zaznaczam zeby było włączone SoundBlaster Pro/16 i podczas startu wykrywa moją karte (jako isa pnp es1868) ale na końcu wyskakuje \\"can not initialize\\" czy jakoś tak. Coś czytałem ze trzeba sie posłóżyć narzędziem isapnptools ale nie wiem za bardzo w jaki sposób. Z góry dzięki za pomoc

Offline Andrzej Oczkowicz

  • Users
  • Użytkownik
  • **
  • Wiadomości: 92
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #1 dnia: 2005-11-04, 11:31:30 »
Ja używałem takiej karty i z tego co pamiętam to na modułach ALSA.
Ale jak dokładnie to było skonifgurowane to nie pamiętam.

A alsaconfig jej nie wykrywa?

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #2 dnia: 2005-11-04, 11:38:40 »
2005-11-04 11:31:30 j3drek napisał:

> Ja używałem takiej karty i z tego co pamiętam to na modułach ALSA.
 > Ale jak dokładnie to było skonifgurowane to nie pamiętam.
 >
 > A alsaconfig jej nie wykrywa?
 
Wykrywać wykrywa ale ja chce ją inaczej zainstalowac (przez isapnptools). Hehe uparłem się bo mam tak że będzię lepiej działało niż na alsa.

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #3 dnia: 2005-11-04, 12:06:29 »
2005-11-04 11:38:40 MariuszWWA napisał:

 > Wykrywać wykrywa ale ja chce ją inaczej zainstalowac (przez isapnptools). Hehe uparłem się bo
 > mam tak że będzię lepiej działało niż na alsa.

w linuksie sa 2 systemy dzwiku OSS i ALSA...
OSS jest starszy i raczej powoli wycofywany

dlaczego nie chcesz korzystac z dobrodziejstw ALSA\\'y ?? jakies konkretne powody, czy tylko slyszales, ze bedzie chodzic gorzej ?

isapnptools nie ma zwiazku z dzwiekiem jako takim - jest to po prostu pakiet narzedzi do technologii plyg&play wprowadzonej swego czasu na magistrali ISA w celu zautomatyzowania konfiguracji parametrow sprzetu (przerwan itp. ) - tak... kiedys to wszystko ustawialo sie recznie zworkami :-)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #4 dnia: 2005-11-04, 12:12:33 »
2005-11-04 12:06:29 chmooreck napisał:

> 2005-11-04 11:38:40 MariuszWWA napisał:
 >
 >  > Wykrywać wykrywa ale ja chce ją inaczej zainstalowac (przez isapnptools). Hehe uparłem
 > się bo
 >  > mam tak że będzię lepiej działało niż na alsa.
 >
 > w linuksie sa 2 systemy dzwiku OSS i ALSA...
 > OSS jest starszy i raczej powoli wycofywany
 >
 > dlaczego nie chcesz korzystac z dobrodziejstw ALSA\\'y ?? jakies konkretne powody, czy tylko
 > slyszales, ze bedzie chodzic gorzej ?
 >
 > isapnptools nie ma zwiazku z dzwiekiem jako takim - jest to po prostu pakiet narzedzi do
 > technologii plyg&play wprowadzonej swego czasu na magistrali ISA w celu zautomatyzowania
 > konfiguracji parametrow sprzetu (przerwan itp. ) - tak... kiedys to wszystko ustawialo sie
 > recznie zworkami :-)

Nie wiem, jakoś sobie wbiłem do bani że to co starsze będzie lepsze dla mojej rakiety (Celeron 300, 160ram), ale skoro mówicie zebym korzystał ze sterowników ALSA to chyba tak zrobie...

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #5 dnia: 2005-11-04, 12:26:29 »
Aha tak przy okazji chciałem jeszcze o coś zapytać, bo na płycie gł. mam jeszcze wbudowaną karte dźwiękową 3D SOUNDPRO (SoundPro HT1869V+ Zgodna ze standardem  PC97/98  3D zgodne z HRTF akceleracja Direct 3D Sound i z Aureal 3D    programowy syntezator Wavetable). Czy ta wbudowana karta będzie lepsza od tej ESS1868?

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #6 dnia: 2005-11-04, 12:27:44 »
2005-11-04 12:12:33 MariuszWWA napisał:

 > Nie wiem, jakoś sobie wbiłem do bani że to co starsze będzie lepsze dla mojej rakiety (Celeron
 > 300, 160ram), ale skoro mówicie zebym korzystał ze sterowników ALSA to chyba tak zrobie...

tak mowimy... to co jest nowsze zwykle jest bardziej zoptymalizowane, ma usuniete wiecj bledow (i wiecej zaimplementowanych - ale to sie wytnie ;-) ) i ogolnie powinno dzialac lepiej ;-)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #7 dnia: 2005-11-04, 18:21:02 »
2005-11-04 12:27:44 chmooreck napisał:

> 2005-11-04 12:12:33 MariuszWWA napisał:
 >
 >  > Nie wiem, jakoś sobie wbiłem do bani że to co starsze będzie lepsze dla mojej rakiety
 > (Celeron
 >  > 300, 160ram), ale skoro mówicie zebym korzystał ze sterowników ALSA to chyba tak
 > zrobie...
 >
 > tak mowimy... to co jest nowsze zwykle jest bardziej zoptymalizowane, ma usuniete wiecj bledow
 > (i wiecej zaimplementowanych - ale to sie wytnie ;-) ) i ogolnie powinno dzialac lepiej ;-)


Aha tak przy okazji chciałem jeszcze o coś zapytać, bo na płycie gł. mam jeszcze wbudowaną karte dźwiękową 3D SOUNDPRO (SoundPro HT1869V+ Zgodna ze standardem PC97/98 3D zgodne z HRTF akceleracja Direct 3D Sound i z Aureal 3D programowy syntezator Wavetable). Czy ta wbudowana karta będzie lepsza od tej ESS1868?

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 26
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #8 dnia: 2005-11-04, 09:48:58 »
Jak w tytule.
Gdy probuje utworzyc dynamicznie tablice w ten sposb:

int *tab = new int ;

to jest ok

a gdy probuje :

int *tab2 = new int[D];

to program sie juz nie chce skompilowac.
Bardzo potrzebne mi sa dane na temat tworzenia takich  tablic. Szukalem juz w google ale niestety nic nie znalazlem :(.

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #9 dnia: 2005-11-04, 10:12:37 »
2005-11-04 09:48:58 FROGER napisał:

> Jak w tytule.
 > Gdy probuje utworzyc dynamicznie tablice w ten sposb:
 >
 > int *tab = new int ;
 >
 > to jest ok
 >
 > a gdy probuje :
 >
 > int *tab2 = new int[D];

no to jaki typ tu ma tab2 ?

poza tym nie ma operatora new obj [][] jest tylko new obj []

rozwiazanie:

int ** tab2 = new int*;
for(int i = 0; i = new int[D];

Offline Paweł Szmuc

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 108
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #10 dnia: 2005-11-04, 10:26:29 »
nie zapomnij o zniszczeniu dynamicznej tablicy 'delete nazwa_tablicy'

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #11 dnia: 2005-11-04, 10:41:51 »
2005-11-04 10:26:29 bizonek napisał:

> nie zapomnij o zniszczeniu dynamicznej tablicy 'delete nazwa_tablicy'

no i zostaja ci smieci... ;-)

zwolnienie takiej tablicy:
for(int i = 0; i;
delete[] tab2;

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 26
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #12 dnia: 2005-11-04, 10:56:13 »
OK. To tablica juz jest utworzona. Teraz jak na niej operowac?

gdy probuje cos takiego:

tab2[x1][x2] = 3;

to nie kompiluje sie. wyskakuje takowy blad:

prog.cpp: In function `int main()':
prog.cpp:44: error: invalid types `int[int]' for array subscript

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #13 dnia: 2005-11-04, 12:30:04 »
a na pewno masz deklaracje zmiennej:

int **tab;

??

jakos u mnie
  tab[0][0] = 1;
przechodzi ;-) - specjalnie sprawdzilem...

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 26
    • Zobacz profil
Dynamiczne tworzenie wielowymiarowych tablic w C++
« Odpowiedź #14 dnia: 2005-11-05, 08:31:32 »
2005-11-04 12:30:04 chmooreck napisał:

> a na pewno masz deklaracje zmiennej:
 >
 > int **tab;
 >
 > ??
 >
 > jakos u mnie
 >   tab[0][0] = 1;
 > przechodzi ;-) - specjalnie sprawdzilem...

Sory - moja literowka. Problem rozwiazany