Come si assegna e si dichiara un array 3D di strutture in C? Assegnate prima la matrice o la dichiarate? Mi sento come se dovessi allocarlo prima in modo da poterlo dichiarare così è nell'heap, ma come allocare qualcosa che non è stato ancora creato? Inoltre, dovresti allocarlo tutto in una volta o elemento per elemento? Inoltre sto inserendo correttamente le strutture nell'array? mia ipotesi su come farlo sarebbe:Come allocare e dichiarare un 3D di matrice di strutture in C?
header.h
struct myStruct{
int a;
int b;
};
typedef struct myStruct myStruct_t;
main.c
#include "header.h"
#include <stdio.h>
#include <stdlib.h>
int main(void){
int length=2;
int height=3;
int width =4;
myStruct_t *elements;
struct myStruct arr = (*myStruct_t) calloc(length*height*width, sizeof(myStruct);
//zero based array
arr[length-1][height-1][width-1];
int x=0;
while(x<length){
int y=0;
while(y<height){
int z=0;
while(z<depth){
arr[x][y][z].a=rand();
arr[x][y][z].b=rand();
z++;
}
y++;
}
x++;
}
return 0;
}
Off-topic di consigliare sull'utilizzo di file '.h' e' .c': http://stackoverflow.com/q/3482948/2186301 – yulian