Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 语句之间的错误_C_Segmentation Fault - Fatal编程技术网

C 语句之间的错误

C 语句之间的错误,c,segmentation-fault,C,Segmentation Fault,充分披露:这是一个家庭作业,我有错误 我正在接收到神秘的间歇性SEGFULTS-就在printf(…,pas_isin(列表,5)之后,但在下一个printf之前。或者至少输出表明了这一点-我猜它可能在pas_isin内部的某个地方终止,并且STDOUT没有被刷新 printf("\n\nTesting isIn with 5 - should return 1"); printf("\npas_isIn returned %i",pas_isIn(thelist,5)); printf("\

充分披露:这是一个家庭作业,我有错误

我正在接收到神秘的间歇性SEGFULTS-就在
printf(…,pas_isin(列表,5)
之后,但在下一个
printf
之前。或者至少输出表明了这一点-我猜它可能在
pas_isin
内部的某个地方终止,并且STDOUT没有被刷新

printf("\n\nTesting isIn with 5 - should return 1");
printf("\npas_isIn returned %i",pas_isIn(thelist,5));

printf("\n\nTesting isIn with 10000 - should return 0");
printf("\npas_isIn returned %i",pas_isIn(thelist,10000));
下面是pas_isIn():

//如果给定列表包含给定值,则返回true
int pas_isIn(int列表[],int x){
int t;
整数长度;
//空列表不包含太多内容
如果(pas_isEmpty(thelist)){返回0;}

因为(t=1;t
length
未在代码中初始化,似乎您已将数组的长度存储在它的第一个元素中,所以应该这样做

//returns true if the given list contains the given value
int pas_isIn(int thelist[], int x) {
    int t;
    int length;
    length = thelist[0];
    //empty list dont' contain much of anything
    if (pas_isEmpty(thelist)) { return 0; }
    for (t=1; t <= length; t++) {
        if (thelist[t]==x) 
            return 1;
    }
    return 0;
}
//如果给定列表包含给定值,则返回true
int pas_isIn(int列表[],int x){
int t;
整数长度;
长度=列表[0];
//空列表不包含太多内容
如果(pas_isEmpty(thelist)){返回0;}

对于(t=1;t长度不是初始值)我不明白为什么有人会否决你。问题是关于主题的。你展示了你的代码,解释了你的错误,寻求帮助。你承认这是家庭作业。我将向上投票给你只是为了平衡否决票。实际上,我指的是列表[0]但是,是的,就是这样。Durp。在这个代码中,
x
将比列表的长度多一个,因为你写的是
t否,x是正在搜索的值。
//returns true if the given list contains the given value
int pas_isIn(int thelist[], int x) {
    int t;
    int length;
    length = thelist[0];
    //empty list dont' contain much of anything
    if (pas_isEmpty(thelist)) { return 0; }
    for (t=1; t <= length; t++) {
        if (thelist[t]==x) 
            return 1;
    }
    return 0;
}