请个位帮忙看一下这个代码的问题并改正。。。。。。能通过编译,但是运行后程序会崩溃

图片说明

——水一水,别太认真————
渣渣最近也被“能通过编译,但是运行后程序会崩溃”给弄的崩溃。(想要在MFC文档类添加设备上下文可以编译但是无法运行,在视图类创建设备上下文后由类成员函数调用,妥妥的。)
1、一看iostream就觉得好厉害,int**也好厉害,指针会不会可能值不为空,但是指向无效。
2、int** a=new int* [4];要不要delete操作?
3、是在可正常运行基础上修改出现的崩溃?那么注释掉修改部分,逐句查找错误原因。

哇哇,大神的回复好强。谢谢

那么请问这个矩阵转置的题按照我这种做法要怎么改呢(题目要求必须用一个函数,且参数为指针数组)

(⊙_⊙) 矩阵转置?
要求是比如输入一个2X4的矩阵{1 2 3 4;5 6 7 8};输出转置{1 5;2 6;3 7;4 8};?

问题get(-_- )

图片说明

图片说明
@_@ 调用函数的测试。我把function的内容粘贴到main(){}过程,然而我并不会动态分配数组长度(笑着流泪);
int** a;//warning C4700: local variable 'a' used without having been initialized
aChange=Change(Mat);//error C2106: '=' : left operand must be l-value
图片说明
好尴尬, int Line1[]={1,2,3,4}; //虽然[]没有具体值,但是初始化已经分配好内存(buff缓冲区了)
int**可能不能直接用“=”赋值,转置不能改长度。

以上演示了一下渣渣是如何分析问题的。

http://www.zybang.com/question/7aebdca22cbb6928ae8f59865f2381ee.html
图片说明
找了4个,勉强算是一个传递指针的(局限于方阵),链接函数VC6.0提示missing subscript,不知道亲可不可以运行。