Hirdetés
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy A54 - türelemjáték
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Poco F5 - pokolian jó ajánlat
- Magisk
- Nemzetközi vizekre evezett a Realme GT 7 és GT 7T
- Apróbb változással jön a Pixel 11 az első képek szerint
- One mobilszolgáltatások
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
Új hozzászólás Aktív témák
-
Jester01
veterán
Ha megoldható, akkor a tömböt add át, és a függvényen belül legyen a .adatx. Ez gondolom menne, tehát valamiért nem megvalósítható.
Alternatívaként csinálhatsz accessor függvényt, varázsolhatsz offsetof segítségével avagy ha esetleg véletlen c++ és nem c akkor member pointerrel.
#include <iostream>
using namespace std;
struct Foo
{
int x;
int y;
};
int sum0_x(Foo* array, int count)
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += array[i].x;
}
return r;
}
int sum0_y(Foo* array, int count)
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += array[i].y;
}
return r;
}
int sum1(Foo* array, int count, int (*accessor)(Foo*))
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += accessor(array + i);
}
return r;
}
int sum2(Foo* array, int count, int member)
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += *(int*)((char*)(array + i) + member);
}
return r;
}
int sum3(Foo* array, int count, int (Foo::*member))
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += array[i].*member;
}
return r;
}
int accessor_x(Foo* foo)
{
return foo->x;
}
int accessor_y(Foo* foo)
{
return foo->y;
}
int main()
{
Foo foos[2];
foos[0].x = 1;
foos[0].y = 2;
foos[1].x = 3;
foos[1].y = 4;
cout << "sum0(x) = " << sum0_x(foos, 2) << endl;
cout << "sum0(y) = " << sum0_y(foos, 2) << endl;
cout << "sum1(x) = " << sum1(foos, 2, accessor_x) << endl;
cout << "sum1(y) = " << sum1(foos, 2, accessor_y) << endl;
cout << "sum2(x) = " << sum2(foos, 2, offsetof(Foo, x)) << endl;
cout << "sum2(y) = " << sum2(foos, 2, offsetof(Foo, y)) << endl;
cout << "sum3(x) = " << sum3(foos, 2, &Foo::x) << endl;
cout << "sum3(y) = " << sum3(foos, 2, &Foo::y) << endl;
return 0;
}
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Kerékpárosok, bringások ide!
- WoW avagy World of Warcraft -=MMORPG=-
- Andras-G: Az internet veszélyei [2. rész] - Facebook Marketpalce
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy Felhasználók OFF topicja
- Autós topik
- Linux kezdőknek
- Milyen program, ami...?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy A54 - türelemjáték
- További aktív témák...
- ASUS Strix GeForce GTX 1080 8GB GDDR5X 256bit (ROG STRIX-GTX1080-A8G-GAMING) Videokártya
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- 350.000FT HELYETT! SzinteÚJ Ulefone Armor Pad 5 Ultra PROJEKTOROS KIB. KEMÉNY TABLET!!! 1.8kg
- Lenovo ThinkBook 14s Yoga 2-in-1 üzleti laptop tollal ÚJ Állapot i7-1165G7 16gb ram 512ssd FHD Gari
- RGB GAMER PC! i7-13700K / RTX 4080 / Z790 Strix / 32GB 3600MHz / 2TB NVMe / 850w Gold!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

