为什么编译过了,运行却出错了?

图片说明
图片说明

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void matrixTranspose(int* matrix,int row,int col)
{
    int i,j;
    int *b=new int[row*col];
    cout<<cout;
    for(i=0;i<row;i++)
    {
        for(j=0;j<i;j++)
        {
            *(b+i*row+j)=*(matrix+j*row+i);

        }
    }
    cout<<"转置后的矩阵为"<<endl; 
    for(i=0;i<row;i++)
    {
        for(j=0;j<i;j++)
        {
            *(matrix+i*row+j)=*(b+i*row+j);
            cout<<*(matrix+i*row+j)<<" ";
        }
        cout<<endl;
    }
    delete[]b;
}
int main(int argc, char** argv) {
    int i,j,row,col;
    cout<<"输入行数和列数"<<endl;
    cin>>row>>col;
    cout<<"转置前的矩阵"<<endl; 
    int matrix[row][col];
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
        {
            cin>>matrix[i][j];
            cout<<matrix[i][j]<<" ";
        }
        cout<<endl;
     } 
     matrixTranspose(matrix[col],row,col);
    return 0;
}
for(j=0;j<i;j++)
->
for(j=0;j<col;j++)