Ahoj, potreboval bych sdilet dvourozmerne pole pro vice procesu, ale nevim jak nato. Vim jak udelat jednorozmerne pole (napr. 10 prvku):
hlavni proces:
int* pole;
mem_size = 10*sizeof(int);
shmid = shmget(IPC_PRIVATE, mem_size, IPC_CREAT | 0666) ;
pole = (int*)shmat(shmid,NULL,NULL);
podproces:
int* pole;
pole = (int*)shmat(shmid,NULL,NULL);
Pro 1d pole mi to funguje, ale jak na 2d pole mne nenapada :(.
Diky za pripadne odpovedi :)
Fórum › C / C++
Sdilena pamet - 2d pole
Typujem ze sa neda zdielat ukazovatel na ukazovatel a ty sa snazis riesit 2d pole ako int**. Co ma napada, tak vyuzi vlastnost ze 2d pole je vlastne 1d pole velke x*y. Cize preved si 2d pole na 1d pole a naspat. Problem je ze to plati len o maticovych poliach kde sa y nemeni. Horsie je to v situaciach kedy mas maximalny pocet v pole[1] 3 a v pole[2] 6. V tomto pripade asi budes potrebovat nejaku pomocnu strukturu, alebo sharuj kazde pole[i] kde shmid zapises do dalsieho pola ktore das opat sharovat..
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 44 hostů
Podobná vlákna
Sdilena pamet — založil markez
Sdílená paměť — založil TomyB
IPC, sdilena pamet meyi procesy — založil Martin
Zpola definovaná paměť 2-D pole. — založil GoliathL
Moderátoři diskuze