I'm trying to implement 2d array to simulate linked list for stack and I faced several difficulties doing so.

How do I implement from Top to Bottom ordering?
How do I check random index value for validity?
Source-code:

Code:
#include <iostream>
using namespace std;

int myTop, index, nex = -1;
int twoDimentionalArray[25][3], L[25];

void construction(int twodimention[25][3], int list[25])
{
    myTop = -1;
    for(int p=0; p<25;p++)
        twoDimentionalArray[p][2] = -1;
}

void empty()
{
    if (myTop == -1)
        cout << "The stack is empty.";
    else
        cout << "The stack is not empty.";
}

void push(int value)
{
    if (myTop < 24)
    {   
        myTop++;
        L[myTop] = value;
        index = rand()%25;
        twoDimentionalArray[index][0] = index;
        twoDimentionalArray[index][1] = value;
        twoDimentionalArray[index][2] = nex;
        nex = index;
    }
    else
        cout << "The stack is full.";       
}

void top()
{
    if (myTop != -1)
        cout << "The top of stack value is: " << L[myTop];
    else
        cout << "The stack is empty.";
    cout << endl;
}

void pop()
{
    if (myTop != -1)
    {
        myTop --;
        twoDimentionalArray[index][2] = -1;
    }

}

void display()
{
    for (int row=0; row<25; row++)
    {
        for (int column=0; column<3; column++)
        {
            cout << twoDimentionalArray[row][column] << "\t";
            if (column == 2)
                cout << endl;
        }
    }
    cout << endl;
}

int main()
{
    construction(twoDimentionalArray, L);
    for (int i=0; i < 11; i++)
        push(i);
    display();

    system ("pause");
}
Here's what I got from pushing 10 elements:

0 3 9
0 0 -1
0 0 -1
3 6 24
0 0 -1
5 10 14
0 0 -1
0 0 -1
8 7 3
9 2 17
0 0 -1
0 0 -1
12 8 8
0 0 -1
14 9 12
0 0 -1
16 0 -1
17 1 16
0 0 -1
19 4 0
0 0 -1
0 0 -1
0 0 -1
0 0 -1
24 5 19


And one more thing: how do I get straight 0 from 25 index in the first coulumn? Thanks!