C++为什么这个程序检查不出错误但是运行不了?

来源:百度知道 编辑:UC知道 时间:2024/06/23 09:07:14
#include <iostream>

using namespace std;

void a(int **b,int c,int d);

void a(int **b,int c,int d)
{for (int i = 0; i < c;c++)
{for (int j = 0; j < d; j++)
{b[i][j] = 0;}}
}

int main(void)
{
int **b;
int c;
int d;

b = NULL;

cin >> c;
cin >> d;
b = new int * [c];

for (int i = 0; i < c; i ++ )
{*(b+i)=new int [d];}

a(b,c,d);

for (int i = 0; i < c;c++)
{for (int j = 0; j < d; j++)
{cout << b[i][j];}}

for(int i =0; i<c; i++)
{delete[]b[i];
b[i]=NULL;}

delete[]b;
return 0;
}

一个运用调用函数的二维动态数组,没有报错,但是为什么运行不了?
对不起,你的运行不了.运行不了意思是说program会让你输入c,d的值,但为什么不会把结果显示在屏幕上呢

#include <iostream>
using namespace std;
void a(int **b,int c,int d);
void a(int **b,int c,int d)
{
for (int i = 0; i < c; c++)
{
for (int j = 0; j < d; j++)
{
b[i][j] = 0;
}
}
}

int main(void)
{
int **b;
int c;
int d;
b = NULL;
cin >> c;
cin >> d;
b = new int * [c];
for (int i = 0; i < c; i ++ )
{*(b+i)=new int [d];}
a(b,c,d);
for (int i1 = 0; i1 < c;c++)
{
for (int j = 0; j < d; j++)
{
cout << b[i1][j];
}
}
for(int i2 =0; i2<c; i2++)
{
delete[]b[i2];
b[i2]=NULL;
}

delete[]b;
return 0;
}