Why does it give me this error and how can i fix it?

So im attempting to learn how to use for loops and arrays together but i cant seem to figure out this error it keeps giving me. The error says “IndexOutOfRangeException. Array index is out of range”. The error is on line 52, the one i put stars next to. The script im using is:

var numberInventory : int[];
private var number : int = 0;

var showInventory = false;

var xStart : float;
var yStart : float;

var buttonSize = 80;




function Start () 
{
	numberInventory = new int[number];
	
	xStart = Screen.width/2-200;
	yStart = Screen.height/2-200;
}

function Update () 
{
	if (Input.GetKeyDown("e"))
	{
		if (!showInventory)
		{
			showInventory = true;
		}else{
			showInventory = false;
		}
	}
}

function OnGUI ()
{
	if (GUI.Button(Rect(0,0,100,100), "ADD"))
	{
		number ++;
		numberInventory = new int[number];
	}
		
	if (showInventory)
	{
		
		GUI.Box(Rect(xStart, yStart-20, 400, 420), "Inventory");
		
		for (var x=0; x<5; x++)
		{
			for (var y=0; y<5; y++)
			{
				****if (GUI.Button(Rect(xStart+buttonSize*x, yStart+buttonSize*y, buttonSize, buttonSize), ""+numberInventory[number]))****
				{
					
				}
			}
		}
	}
}

How can i fix this? Thanks!

Index problem.

A array with size n will have n elements and the indexes of these elements are { 0, 1, … n-1}.

You declare your array as:

 numberInventory = new int[number];

So the index should be in { 0, 1, …, number - 1 }. Using numberInventory[number] will produce a index out of range exception.

var index = 0;
for (var x=0; x<5; x++)
{
   for (var y=0; y<5 && index < number; y++)
   {
      if (GUI.Button(Rect(xStart+buttonSize*x, yStart+buttonSize*y, buttonSize, buttonSize), ""+numberInventory[index++]))
      {
 
      }
    }
 }