// compiler avec -msse2 car on utilise xmmintrin.h #include #include #include /** * classe contenant un entier utilisée pour cet exemple */ class MyClass { protected: int value; public: /** * constructeur par défaut sans argument */ MyClass() { value = 0; } /** * constructeur avec valeur d'initialisation */ MyClass(int v) { value = v; } /** * getter */ int get_value() { return value; } }; // ---------------------------------------------- // main function // ---------------------------------------------- int main() { // allocation d'un tableau de 20 entiers int *tab_int; tab_int = (int *) malloc(20 * sizeof(int)); // ou tab_int = static_cast(malloc(20 * sizeof(int))); // ou tab_int = (int *) calloc(20, sizeof(int)); // libération de la mémoire allouée free(tab_int); // ================================== // allocation avec alignement // ================================== tab_int = (int *) _mm_malloc(20 * sizeof(int), 16); // libération de la mémoire allouée par _mm_malloc _mm_free(tab_int); // tableau de 100 Person MyClass *tab_object; tab_object = (MyClass *) malloc(100 * sizeof(MyClass)); // ou tab_object = static_cast(malloc(100 * sizeof(MyClass))); // ou, mais nécessite de déclarer le constructeur par défaut sans arguments tab_object = new MyClass[ 100 ]; for (int i=0; i<100; ++i) { printf("%d ", tab_object[i].get_value() ); } // libération free(tab_object); return 0; }