I am trying to replicate a chunk loading system in C for my own minecraft like game, though I don't know how. Once chunks are loaded, are they placed in an array, or are there a bunch of variables for each loaded chunk,In my game, once I load chunks using `fread`, what should I use to store them. My problem for a two dimensional array for storing chunks, is that the loaded chunks might be seperate and not start at zero. Are there any suggestions for storing loaded chunks?

I have a code fragment, solely so you guys will not yell at me for not including code:

        char ChunkFilePath[strlen(CurrentWorld)+32];
    	sprintf(ChunkFilePath, "%s/ChunkData/%ld %ld", CurrentWorld, X, Z);
    	FILE *ChunkFile;
    	if ((ChunkFile = fopen(ChunkFilePath, "r"))) {
    	 	//chunk file exists, Read Chunk file to ???
    	}
    	if ((ChunkFile = fopen(ChunkFilePath, "w")) == NULL) {
    		fputs("Error Loading Chunk (File Not Found)", stderr);
    		return;
    	}
    		/*Chunk does not exist, but any other errors would have been caught 
            at this point, so Generate chunk, write generated results to ???*/

Note: The game I am trying to make is purely for my personal use, not for any commercial use.

>Edit:

I got an anwer. Do they mean something like this?

    #define NOTHING
    struct ChunkInstance {
    	struct BlockInstance Block[16][256][16];
    } ***LoadedChunk NOTHING NOTHING NOTHING;

then later

    #define molloc(arg) malloc(arg)
    LoadedChunk = molloc((2rd+1)squared); //<--pseudo code, rd = render distance