C++ 我的程序在执行期间停止工作

C++ 我的程序在执行期间停止工作,c++,C++,我在代码块中编写代码,在执行过程中出现以下运行时错误: 进程返回0xC0000005 这是我的密码 我相信这与我调用函数的方式有关 主要内容: 我得到一个错误代码,程序停止运行 您在程序中读取了一个不确定的值。因此,程序的行为未定义。启动调试程序0xC0000005的时间是windows上的访问冲突,相当于unix上的分段错误。这很可能意味着您在执行过程中的某个地方遇到了空指针:您实际上并没有返回x;在接收检查中。打开编译器警告将帮助您找到此错误和其他各种错误。存在大量未定义行为的可能性。。LT

我在代码块中编写代码,在执行过程中出现以下运行时错误:

进程返回0xC0000005

这是我的密码

我相信这与我调用函数的方式有关

主要内容:

我得到一个错误代码,程序停止运行


您在程序中读取了一个不确定的值。因此,程序的行为未定义。

启动调试程序0xC0000005的时间是windows上的访问冲突,相当于unix上的分段错误。这很可能意味着您在执行过程中的某个地方遇到了空指针:您实际上并没有返回x;在接收检查中。打开编译器警告将帮助您找到此错误和其他各种错误。存在大量未定义行为的可能性。。LT的内容在使用前不会初始化,甚至它初始化时使用的值都是i*i,它可以超过数组的大小,因此LT[NI],其中NI是从数组中检索到的值,可能会超过数组的结尾。。除了您的查找之外,我还尝试LT[i]或LT[j],其中i未初始化,以及j=i+1,其中i未初始化。。这甚至不是代码中所有可能未定义行为的情况。main或任何其他函数中的变量与其他函数中同名的变量没有连接。我想你期望在main中更改I的值会在find_NI中设置I的值。当然不会。
int main()
{
    int LT[101],i, NI;
    float x;
for (i=0 ; i<101 ; i++)
LT[i]=i*i;
NI=find_NI(LT , x);
x=recieve_check_x();
cout<<"square root  of x is:"<<(NI+(x-LT[NI])/(2*NI));
return 0;
}
#include <iostream>
#include "funcs_hd.h"
using namespace std;
float recieve_check_x ()
{
    float x;
cout<<"enter the value of x:"<<endl;
cin>>x;
while (x<0 or x>10000)
    {
    cout<<"\a error! x must be within range of [0,10000]"<<endl;
    cout<<"enter another value:"<<endl;
    cin>>x;

    }

    }
#include <iostream>
#include "funcs_hd.h"
#include <cstdlib>
#include <cmath>
using namespace std;
 int find_NI (int LT[] , float x)
 {
 int i, j , NI;
 j=i+1;
 double i_delta=abs(LT[i]-x);
 double j_delta=abs(LT[j]-x);
 if (i_delta<j_delta)
    NI=LT[i];
    else
    NI=LT[j];
    return NI;
 }
#ifndef FUNCS_HD_H_INCLUDED
#define FUNCS_HD_H_INCLUDED

float recieve_check_x (void);
int find_NI (int [] , float);
#endif // FUNCS_HD_H_INCLUDED
int i, j , NI;
j=i+1;
  ^ indeterminate value