2016-07-20 10 views
-1

I 32 Bit-Integer, die ich möchte, dass sie speichern in einer dynamisch zugewiesenen Array und dann dieses Array (in MPI) an andere Prozesse sendenShop ganzen Zahlen (32 Bit) in einem Array (welcher Art?) C-Programmierung

int32_t data; 

ich bin verwirrt, welche Art von Daten soll ich so verwenden, dass ich eine Reihe von Größe kann sagen haben, N mit 32-Bit-Integer? Wie kann dies implementiert werden?

+3

Ich denke, man kann über malloc/realloc/Frei lernen wollen. –

+1

Wie wäre es mit 'int32_t * array = malloc (sizeof (int32_t) * N); '? –

+2

Ich glaube 'int32_t * array = malloc (sizeof (* array) * N);' ist besser. –

Antwort

0

... welche Art von Daten sollte ich verwenden, damit ich ein Array der Größe haben kann, sagen wir N mit 32 Bit Ganzzahlen?

// The type of `p` is a pointer to a 32-bit signed integer. 
int32 *p; 

Wie kann dies umgesetzt werden?

// No need to use `int32_t` in the next line of code 
//    size of 1 element ---v-------v * v--- element count 
p = /* no cast needed here */ malloc(sizeof *p * N); 
if (p == NULL) return Handle_Failure(); 

for (size_t i=0; i<N; i++) { 
    // do something with p[i] 
    p[i] = 42; 
} 

// free when done 
free(p);