关于存放数组指针的数组的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 19:51:08
我想用一个int*型数组来存放整形数组的指针,程序如下,编译连接都可以通过,但是一运行就报错,DEBUG发现问题出在向数组里写入int值的那一行,但是不知道如何修改,请高手帮我看看为什我这样不行,怎么改
#include<iostream>
using namespace std;

void main()
{
int *p[5];

for(int i=1,j=0;i<=10;i++)
{
if(j%2==0)
{
p[j]=new int[10];

j++;
}
}
for(i=0;i<=j;i++)
{
for(int temp=0;temp<10;temp++)
{

p[i][temp]=i;//问题就出在这一行!!!!!
}
}

}

第一个循环第一次:
i = 1, j = 0;
j % 2 == 0, 所以执行 new, 并 j++, 此时 j == 1;
第二次循环:
j % 2 == 1, != 0, 其后的循环, j 也不会被 ++, 因为 if 条件始终不被满足, j++ 无法运行, 所以只有 p[0] 被初始化了, 导致下面的 i 循环第二次循环就会出错