temp2是temp1经过变换得到的数组,在temp2给fd赋值的时候怎么赋不了值呢?显示fd为null,另外在fd初始化时,debug那一步总是跳过fd,请问怎么回事??多谢了
for (int i = 0; i < w; i++) {

     for (int j = 0; j < h; j++) {
temp1[j] = td[i * h + j];
     }
      for (int j = 0; j < h; j++) {
fd[i * h + j] = temp2[j];
     } }

解决方案 »

  1.   

    看看fd申请空间了没.
    int[]fd = new int[size];//size根据你的程序而定
    如果源码不太长,可以把源码全帖出来,这样更方便别人帮你查问题
      

  2.   

    源码挺乱的  我详细说一下吧fd是自己定义的复数   Complex[] fd = new Complex[count];//分配的空间
     for (int j = 0; j < count; j++) {
        fd[i * w + j] = new Complex();//初始化
     }但是在分配空间那一行程序会跳过去 使得fd为null ,按理说不应该这样啊
      

  3.   

    比较一下两个地方
    fd[i * w + j] = new Complex();//初始化  第一个地方
     for (int i = 0; i < w; i++) {

         for (int j = 0; j < h; j++) {
    temp1[j] = td[i * h + j];  //第二个地方
         }可以看出
    i * h + j < i * w + j
    说明td[i * h + j];没有被初始化过,还是null了
    所以
    for (int j = 0; j < h; j++) {
    fd[i * h + j] = temp2[j]; //这里就出错了
      

  4.   

    发现一个奇怪的问题 就是在这个类中如果新定义任何变量 都不行  例如:int j=1;
    debug时会提示:j cannot be resolved
      

  5.   

    public class Array6_5{
      public static void main(String[] args){
        int[][] a=new int[5][5];  
          for(int i=1;i<=5;i++){
            for(int j=0;j<5;j++){
              a[i][j]=i+j;
    System.out.print(a[i][j]+"@");
          }
    System.out.println();
    }
    }请各位高手看看为什么这个程序会出错呢。多谢了各位。