【问题标题】:Process terminated with status -1073741819 In C进程以状态 -1073741819 在 C 中终止
【发布时间】:2013-09-26 20:19:22
【问题描述】:

当我运行这段代码时:

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

int main ( int argc, char *argv[] )
{

int i=0;
int *arrNum = (int *) malloc(sizeof(int) * 5);
if(arrNum == NULL)
              {
            puts("Failed to allocate memory !!!");
            exit(1);
              }
        while(i<5)
        {
        printf("Number %d: ",i+1);
        scanf("%d", arrNum[i]);
        i++;
        }
        for(i=0;i<5;i++)
            {
            if(arrNum[i]%3==0)
                printf("%d\n", arrNum[i]);
            }
free(arrNum);
return 0;
}

我收到错误:进程以 -1073741819 状态终止, 什么原因,我应该如何更正我的代码?在 C.非常感谢

【问题讨论】:

  • 这是访问冲突,是 C 代码的标准故障模式。您的 scanf() 函数调用已损坏,请使用 &arrNum[i]。鉴于可怕的缩进和明显缺乏对调试器的访问权限,我认为您应该继续寻找更有用的 IDE。

标签: c codeblocks


【解决方案1】:

在您的 scanf 中,您没有提供数组各个元素的地址

修复:

 scanf("%d", &arrNum[i]);
             ^ use &

【讨论】:

    【解决方案2】:

    scanf 要求第二个参数是地址

    替换"scanf("%d", arrNum[i]);"和 scanf("%d", &arrNum[i]);或 scanf("%d", arrnum+i);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      相关资源
      最近更新 更多