How should this fft output be intepreted? I am currently reading some code, so I can understand how this FFT output is actually been stored. 

I have a function which computes FFT of audio file, and stores is in the format. 

[real0, realN/2-1, real1, im1, real2, im2, ...]


which kind of confuses me, as I remember DFT/FFT converts from time domain to frequency domain, in which the real part is the amplitude, and the complex part is the phase, but aren't I missing some information regarding what frequency has what amplitude and what phase?


Am I missing something? 
Or am I right when i say that I can't from these complex numbers extract the amplitude for a certain frequency?


I am currently using Kaldi framework, in which i am trying to compute the spectogram of an audio file... 

The output file it has generated looks like this.

This output was generated from a 1 second audio file. 
sampled with 16 kHz, and frame length = 25 ms and hop_length = 10ms. 
The number of datapoint the function has generated is 25816. 
I am not sure how i should interpret it, i mean is each value supposed to be the power for a given frequency, and if so which frequency ?
"[...] the real part is the amplitude, and the complex part is the phase [...]" No, complex numbers (and that's what the output of a DFT/FFT is) can be represented either by their real and imaginary parts (as in the output vector of your routine), or by their magnitudes and phases. Please refer to the linked page on how to convert one representation to the other.

The indices $i=0,1,\ldots N-1$ of the output vector of a length $N$ DFT/FFT are related to actual frequencies via the sampling frequency $f_s$:

$$f_i=\frac{if_s}{N}$$

If the input vector is real-valued, the first $N/2+1$ values (assuming $N$ is even) contain all information about the signal.