Czy można ustalić jakoś ile razy ma się powtarzać jakaś struktura?

0

Witam.
Czy można ustalić jakoś ile razy ma się powtarzać jakaś struktura??
Jak w przykładzie O->Tablica wskazuję na tablicę AHKArray lecz problem polega na tym, że w zasadzie AHKArray pod adresem O->Tablica powtarza się O->Count razy
Tak więc jak odczytać np A->Flag[3] (O->Tablica+0x2C)??

Dajmy na to O->Count = 25, czyli pod adresem znajduje się 25 struktur AHKArray.
Teraz jak odczytać każda z 25 struktur AHKArray a nie tylko pierwsza?? Coś na kształt
AHKArray A2 = (AHKArray) O->Tablica+16; dla drugiej struktury
AHKArray A3 = (AHKArray) O->Tablica+32; dla trzeciej struktury itd

Dodatkowo zapytam się czy można połączyć struktury w ten sposób aby wywoływać w en sposób: O->Tablica->Flag[3]

struct AHKObject
{
	int n1;
	int n2;
	int n3;
	int Tablica;
	int Count;
	int Capacity;
	int Item_Num;
	int n4;
};

struct AHKArray
{
	int Value;
	int Len;
	int Name;
	int Flag;
};

int API_Init(HWND h,int array)
{
	int Count = 0;
	int Item_Num = 0;
	int Table = 0;
	int Value = 0;
	int Len = 0;
	int Name = 0;
	int Flag = 0;
	int Obj = 0;
	int q = 0;
	Count =    MR(array, 16);
	Item_Num = MR(array, 24);
	Table =    MR(array, 12);


	AHKObject *O = (AHKObject*)array;
	AHKArray  *A = (AHKArray*) O->Tablica;
 return A->Flag;
}

int MR(int address, int offset){
	int r = 0;
	address += offset;
	_asm{
		mov edi, address
		xor eax, eax
		mov eax, [edi]
		mov r, eax
	}
	return r;
}
 
1

?

  1. Możesz mieć strukturę w strukturze ale u ciebie tablica to int a nie wskaźnik na struktury...
  2. Za bardzo kombinujesz! C++ pozwala na ładną arytmetyke wskaźników. Nie musisz robić takich cudów na kiju. Jeśli O->Tablica będzie typu AHKArray* to wystarczy że napiszesz (O->Tablica)[5] i dostaniesz 5 strukturę...

1 użytkowników online, w tym zalogowanych: 0, gości: 1