Help Me on Storing GameObject!!!

I was trying to make a Game about Collapse game thingy as a school Project but then it comes to an error

using UnityEngine;
using System.Collections;

public class Spawner : MonoBehaviour 
{
	
	public GameObject[] Block; // Takes all the tagged Colour Block
	public GameObject[][] BlockCounter; // the Spawned GameObject are stored here
	public Vector3[][] BlockPosition; // The Position of the Block in float
	
	// Use this for initialization
	void Start () 
	{
		Block = GameObject.FindGameObjectsWithTag("Block");
		int number=0;
		for (int x=0 ; x<10 ; x++)
		{
		 number = Random.Range(0,3);
		 BlockCounter[0][x]=Block[number];
		 Instantiate (BlockCounter[0][x], new Vector3 (0,0,0) , transform.rotation);
		}
		
	}
	
	
	// Update is called once per frame
	void Update () 
	{
		
	}
}

i have 4 GameObject that is tagged “Block” and i wanna to copy it to the array multiple times with different position (so i can access another script in each of the duplicated block individually and be able to modify it) and randomly so the block would shuffle the colour but the error its showing is :

NullReferenceException: Object reference not set to an instance of an object
Spawner.Start () (at Assets/Script/Spawner.cs:19)

Please help…desperately new Unity Student is dying ! im really confused, forgive me if this is a basic wrong.

I’m not sure but I suspect you get this error because you are trying to access and element of the Block, or BlockCounter arrays without checking them first.
For example, what happens if your FindGameObjectsWithTags call, fails to find anything?
It also looks like you don’t initialize the BlockCounter array at all. This would be ok, if the user entered the array properly in the editor, but that is a dangerous assumption to make. But based on the error, I suspect this array is completely uninitialized.

I also notice that your loop is going from 0 to 10, but we don’t know for sure that is actually how big the arrays are!

Suggest you take a look at working with arrays in c#. In particular take a look at how to instantiate arrays (using new), and how to determine array length (gets tricky with multi-dimensional arrays like BlockCounter. Here are some links to help with that: