【问题标题】:Segmentation fault (core dumped) when filling matrix with random numbers [closed]用随机数填充矩阵时出现分段错误(核心转储)[关闭]
【发布时间】:2015-09-16 18:46:03
【问题描述】:

我要做的是简单地用随机数填充 2 个矩阵。但是,使用我的代码时,我得到一个分段错误(核心转储)错误,我不知道为什么。非常感谢您的帮助。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int matA[3][3];
int matB[3][3];

int main() {

   srand(time(NULL));
   int i, j;

   for(i=0; i<3; i++)
   {
      for(j=0; j<3; i++)
      {
        matA[i][j] = (rand() % 9) + 1; 
        matB[i][j] = (rand() % 9) + 1;
      }     
   }

}

【问题讨论】:

  • for(j=0; j&lt;3; i++) 应该是for(j=0; j&lt;3; j++)(即j++ 而不是i++
  • 使用调试器单步执行会显示问题。

标签: c matrix random segmentation-fault


【解决方案1】:
for(i=0; i<3; i++)
{
   for(j=0; j<3; i++)
                 ^---- wrong var

所以您最终会达到 i=3 并超出数组的末尾。

【讨论】:

  • 当然这是一个愚蠢的错误.. 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多