删除导致分段错误的cout语句

ado*_*tyd 1 c++ for-loop function segmentation-fault

这是我程序中的一个功能.使用cout语句,程序编译并运行.如果我删除cout语句,我会返回一个分段错误.我在linux mint上使用G ++编译器.有没有人对此有任何想法?

int findFactors(int n,int factors[],int numFactors)
{
  int m=n;
  int k=2;
  int i;

 while(m!=1)
 {
  for(k=2;k<=m;k++)
  {
   if(m%k==0)
    {
      factors[i]=k;
      cout<<"Prime Factor: "<<factors[i]<<endl;//This is the offending statement!
      factors[i++];
      numFactors++;
      break;
    }
  }
   m=(m/k);
 }

  return numFactors;
}   
Run Code Online (Sandbox Code Playgroud)

Phi*_*ipp 6

i是未初始化的,因此访问factors[i]是未定义的行为,任何事情都可能发生.

此外,该声明factors[i++];应该做什么?