c分割核心转储?

Jed*_*d I 0 c arrays malloc

我有一个功能来添加向量和存储结果,我无法解决为什么我得到分段核心转储.暂时不做C:/

void add(int *a, int *b, int *c, int n){
   int i;

   for(i = 0 ; i < n; n++)
   {
     c[i] = a[i] + b[i];
     i++;
   }

}

int main() {
 // vector_size = 100000
 // vector_a init with 100000 values
 // vector_b init with 100000 values

 int *result = malloc(vector_size * sizeof(int));
 add(vector_a,vector_b,result,vector_size);
}
Run Code Online (Sandbox Code Playgroud)

Teu*_*ndo 6

你正在增加n而不仅仅是i,for循环应该是这样的:

for(i = 0; i < n; ++i)
{
    c[i] = a[i] + b[i];
}
Run Code Online (Sandbox Code Playgroud)

在您的代码中,变量最终i会变大vector_size,导致分段错误.