C# Object Array gives me Null objects

I'm trying to initialise an array of custom C# objects. Object definition is:

using UnityEngine;
using System.Collections;

public class MemoryChunk : MonoBehaviour {
   private float creationTime;
   void Start() {}
   void Update() {}
}

In another class I try to initialise an array of these:

using UnityEngine;
using System.Collections;

public class Agent : MonoBehaviour {
   private MemoryChunk[] STM;
   void Start() {
      STM = new MemoryChunk[6];
   }
}

However if I then iterate over the array with a standard for loop:

for(int i = 0; i < STM.Length; i++) {
   Debug.Log(STM*);*
*}*
*```*
*<p>Then I get "Null" printed to the Console.</p>*
*<p>I guess I'm missing something obvious? Any ideas?</p>*

You've only initialized the array, you haven't initialized any of the entries in the array. With classes, each entry is null unless explicitly initialized. (Structs have default values.) However, this won't work anyway, because you can't create MonoBehaviours with "new", you can only add them as components to a GameObject.

Edit: Statement provided info that I don't actually have to inherit from anything (didn't know this), so now MemoryChunk is just a normal class and I initialise in the for loop using

STM *= new MemoryChunk();*
*```*
*<p>End Edit.</p>*
*<hr>*
*<p>I'm not sure if this is right, but I changed MemoryChunk to inherit from ScriptableObject. Then I create new Instances in the Agent's Start function:</p>*
*```*
*void Start () {*
 *STM = new MemoryChunk[6];*
 *for(int i = 0; i < STM.Length; i++) {*
 _STM *= (MemoryChunk)ScriptableObject.CreateInstance(typeof(MemoryChunk));*_
 _*}*_
_*}*_
_*```*_