delete解决办法

delete
C/C++ code

#include<iostream>
#include <iomanip>
using namespace std;

const int N    = 6;

//递归求解矩阵连乘问题
int RecurMaxtrixChain(int *p, int i, int j, int **s){
    if(i == j) return 0;
    int u = RecurMaxtrixChain(p, i, i, s) + RecurMaxtrixChain(p, i + 1, j, s) + p[i - 1] * p[i] * p[j];
    s[i][j] = i;
    for(int k = i + 1; k < j; k++){
        int t = RecurMaxtrixChain(p, i, k, s) + RecurMaxtrixChain(p, k + 1, j, s) + p[i - 1] * p[k] * p[j];
        if(t < u){
            u = t;
            s[i][j] = k;
        }
    }
    return u;
}

//输出结果
void View(int i,int j,int **s) {
    if (i == j) {
        cout<<"A"<<i;
        return;
    }else if (i < j) {
        cout<<"(";
        View(i,s[i][j],s);
        View(s[i][j] + 1,j,s);
        cout<<")";
    }
    return;
}


void RecurTest()
{
    int p[] = {30, 35, 15, 5, 10, 20, 25};
    int **s = new int * [N + 1];
    for(int i = 1; i <= N; i++)
    {
        *(s + i) = new int[N];
    }
    RecurMaxtrixChain(p, 1, N, s);
    View(1, N, s);
    for(int i = 1; i <= N; i++)
        delete *(s + i);
    delete s;
}

void main()
{
    //TraceTest();        //矩阵连乘
    RecurTest();        //递归矩阵连乘

    getchar();
}


不知道为什么 delete的时候会有错误
望高人指点迷津

------解决方案--------------------
RecurMaxtrixChain 里有问题
------解决方案--------------------
不懂帮定