creating prefabs in array

i get an error message stating that the array index is out of range. i need help on where am i making mistake. please explain me wat is the error. i have only one gameobject and i want only that object to be instantiated in loop.

using UnityEngine;
using System.Collections;

public class spawner_1 : MonoBehaviour {
	//public GameObject card;
	//public GameObject card2;
	public GameObject[] prefabPool = new GameObject[1];
	// Use this for initialization
	void Start () {		

	prefabCreation ();
		//prefabPool = new GameObject[2];
	// Update is called once per frame
	void Update () {
	public void prefabCreation()
		//print ("method start");

		for(int i = 0; i < 4; i++)

			for(int j = 0; j < 4; j++)
				Vector3 position = new Vector3((j * transform.localScale.x) -1.0f, (j * transform.localScale.y) + 1, 0);
				Instantiate(prefabPool*,position, Quaternion.identity );*
  •  	}*
  •  }*
  • }*

Array index out of range means that you are trying to access a position in the array, that does not exist.

Put in some debug lines that check:

  1. How big your array truthfully is

  2. Where you are at in terms of accessing it.

    // First, check how big the array truthfully is…
    int a = prefabpool.Length;

You should note that even you have 7 items in your array as an example…
Then the array starts at 0 and ends at 6. Arrays always start at zero

print (a);
print (i); // Check which spot in the array you really are trying to use

on line 9 you create an array of two elements while in the the for loop on line 27 you try to access the first 4 elements of that array