我正在编写一个程序来加密一些数据,为了做到这一点,我有一个我需要传递给一个函数的数组,然后它必须返回到main。我试着这样做但是一旦执行就得到这个消息:“Segmentation fault(core dumped)”
这就是我试图这样做的方式:
void shift3bit(int P[64])
{
/*some operations*/
}
void main(void)
{
int P[64];
shift3bit;
}
非常感谢你的帮助,我是编程新手。
答案 0 :(得分:1)
将相关功能称为:
shift3bit (P);
不
shift3bit;
答案 1 :(得分:1)
好的,首先,设定演讲。如果您之前从未编程, 你正在研究错误的语言。 C是低级别的,你也会花钱 很多时候搞乱指针和内存管理,以及 追逐晦涩的错误。 Python是你第一个更好的选择 语言。它会让你专注于程序及其逻辑,而不是 位摆弄。
至于问题,这很简单。你这样做了:
shift3bit;
shift3bit
是引用函数的标识符。当你这样做
这样,在语义上它就像你做了类似的事情一样
这样:
int x;
...
x;
它什么都不做。您想要做的是调用该功能 包括名称后的括号:
shift3bit();
那将调用该函数。碰巧,你实际上需要传递一个 参数:
shift3bit(P);
我猜你是C的新手,你只是忘了把它包括在内 括号和参数。这是一个容易犯的错误。我现在就做 然后,我已经编程了数十年。
如果您对此一点不清楚,请返回并查看 教科书的一部分。 (是的,即使你转而学习Python作为 推荐的;以这种方式调用函数是非常普遍的 声明性语言。)