Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet C-ben egy azonos...

Hogyan lehet C-ben egy azonos stuktúrákra mutató pointerömbnek dinamikusan memóriát allokálni?

Figyelt kérdés

Az biztos, hogy dinamikusan, de a struktúra több adattípust tartalmaz(2 karaktertömb és egy int), ami megnehezíti a megértést.

Hogy egyértelmű legyen a kérdés, itt a kódrészlet,az említett pointertömb a második strutúrában található.


typedef struct {

int ID;

char parameter[17];

char name[100];

}server;


typedef struct {

char executable[100];

int counter;

server *list[];

}config;


A foglalásnál tudom, hogy először a sorok pointereinek kell, utána egy ciklussal a soroknak.


Egy ilyen file adatainak kezeléséhez kellene a struktúrás megoldás:


executable.exe

SorokSzama

1 parameter1 name1

2 parameter2 name2

3 parameter3 name3

4 parameter4 name4

...


Ha a *list[] int-ekre mutatna, akkor valami ilyesmi lenne:


int i;

config.list=(int**)malloc(SorokSzama*sizeof(int*));

for(i=0;i<SorokSzama;i++)

{

config.list[i]=(int*)malloc(3*sizeof(int));

}


De jelen esetben milyen tipuskényszerítés kell, vagy kell-e?


2011. dec. 30. 13:39
 1/3 anonim ***** válasza:

Igazából minden pointer típus ugyanannyi helyet foglal a memóriában, tehát mindegy, hogy milyen explicit típuskonverziót használsz, a színvalak mögött void* -od van mindenhol.


Az int*, char*, <típus>* pointerekek akkor van értelme, ha tömbként akarod kezelni. Plusz átláthatóbb lesz a kód számodra és a fordító számára is. Tehát:


config.list = (server**)malloc(SorokSzama*sizeof(server*));


config.list[i] = (server*)malloc(sizeof(server));

2011. dec. 30. 14:37
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

Általánosan:

Struktúrád *pointer = ( Struktúrád * ) malloc ( sizeof ( Struktúrád ) * AhányDarabKell);

2011. dec. 30. 22:37
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:
Ha a struktúrán belül is van tömböd amit mallocolni akarsz, akkor hagyományos módon :D
2011. dec. 30. 22:38
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!