Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Function_Pointers - Fatal编程技术网

C &引用;数组";函数正在阻止程序正常运行

C &引用;数组";函数正在阻止程序正常运行,c,arrays,function,pointers,C,Arrays,Function,Pointers,我的功能不能正常工作。程序运行,但当它到达for循环时,函数不工作并停止程序,即使它应该继续循环。如果您能检查我的数组函数,并告诉我是否有任何我不理解或不正确的地方 谢谢你抽出时间 事实上,我知道循环不是问题所在,因为当我删除函数时,它工作得很好。我还尝试过将“b”放在函数数组参数中,如“intarray(inta[b],intb,intc);” #包括 #包括 /*作用*/ int数组(inta[],intb,intc); /*主程序*/ int main() { int S,C,*A,*B;

我的功能不能正常工作。程序运行,但当它到达for循环时,函数不工作并停止程序,即使它应该继续循环。如果您能检查我的数组函数,并告诉我是否有任何我不理解或不正确的地方

谢谢你抽出时间

事实上,我知道循环不是问题所在,因为当我删除函数时,它工作得很好。我还尝试过将“b”放在函数数组参数中,如“intarray(inta[b],intb,intc);”

#包括
#包括
/*作用*/
int数组(inta[],intb,intc);
/*主程序*/
int main()
{
int S,C,*A,*B;
printf(“您希望数组A和B中有多少个数字?”);
scanf(“%d\n”、&S);
/*For循环要求用户输入一个值,并使用数组函数计算/存储B[]值*/

对于(C=0;C您没有为数组A分配任何内存。您只需将其声明为指向int的指针,然后开始向其写入值,这些值将指向某个随机内存位置。在第一次扫描得到S之后,您需要在访问它之前分配
A=malloc(S*sizeof(int))

您应该添加
fflush(stdout)
打印提示后,在
scanf
之前,强制显示提示(因为它不以换行结束)你需要更好的变量名,
A
B
指向什么?在你开始使用它们之前,你从来没有初始化过它们。谢谢你的回答。我添加了那一行,但它仍然不能正常工作。我明白你的意思,有没有其他方法来初始化它?可能还有其他错误;那就是最明显的是。一个好的调试器肯定会有帮助。@初学者-您还需要为
B
分配内存,就像这样
B=malloc(S*sizeof(int))
谢谢你们两位的回复。@RishikeshRaje我确实这样做了,但它仍然不起作用。我最终初始化了数组的大小,它起作用了,所以我的编译器可能不支持malloc?例如:A[99999],B[99999].它工作得很好,我猜是编译器,但我是个初学者,所以我说的可能是无意义的。你的编译器没有问题。至少需要2年的时间你才能这样想。更有可能你正在做一些事情,比如分配10个元素和访问第11个元素。
#include <stdio.h>
#include <stdlib.h>

/*Function*/

int Array(int a[], int b,  int c);

/*Main Program*/
int main()

{

int S, C, *A, *B;
printf("How Many Numbers Would You Like in Array A and B? ");
scanf("%d\n", & S);

/*For Loop Asking The User to Enter a Value and using the Array function to calculate/store the B[] Value*/
for (C=0; C<=S; ++C){
    printf("\nWhat is A[%d]  ", C);
    scanf("%d", & A[C]);
    B[C] = Array(A, S, C);
    }
}


/*Function*/    
int Array(int a[], int b, int c)
{
if (a[c] < 0){
        return a[c] * 10;

    } else {
        return a[c] * 2;

                }
}