void main()
{
    long    **p, i, j;
    
    // Allocate a bi-dimensional matrix
    p = m.new(sizeof(long *) * 10);
    for(i = 0; i < 10; i++)
        p[i] = m.new(sizeof(long) * 10);
    
    // Fill the matrix with something
    for(i = 0; i < 10; i++)
        for(j = 0; j < 10; j++)
            p[i][j] = i * 100 + j;
    
    // Dump the matrix
    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 10; j++)
            c.fwrite("%3d ", p[i][j]);
        c.fwrite("\n");
    }
    
    // Free the matrix
    for(i = 0; i < 10; i++)
        m.del(p[i]);
    m.del(p);
}

OUTPUT
  0   1   2   3   4   5   6   7   8   9
100 101 102 103 104 105 106 107 108 109
200 201 202 203 204 205 206 207 208 209
300 301 302 303 304 305 306 307 308 309
400 401 402 403 404 405 406 407 408 409
500 501 502 503 504 505 506 507 508 509
600 601 602 603 604 605 606 607 608 609
700 701 702 703 704 705 706 707 708 709
800 801 802 803 804 805 806 807 808 809
900 901 902 903 904 905 906 907 908 909