C - 如何将数组传递给函数,对其执行某些操作,然后将其返回到主函数?

时间:2015-12-06 18:19:52

标签: c arrays

我正在编写一个程序来加密一些数据,为了做到这一点,我有一个我需要传递给一个函数的数组,然后它必须返回到main。我试着这样做但是一旦执行就得到这个消息:“Segmentation fault(core dumped)”

这就是我试图这样做的方式:

void shift3bit(int P[64])
{
   /*some operations*/
}

void main(void)
{
    int P[64];
    shift3bit;
}

非常感谢你的帮助,我是编程新手。

2 个答案:

答案 0 :(得分:1)

将相关功能称为:

shift3bit (P);

shift3bit;

答案 1 :(得分:1)

好的,首先,设定演讲。如果您之前从未编程, 你正在研究错误的语言。 C是低级别的,你也会花钱 很多时候搞乱指针和内存管理,以及 追逐晦涩的错误。 Python是你第一个更好的选择 语言。它会让你专注于程序及其逻辑,而不是 位摆弄。

至于问题,这很简单。你这样做了:

shift3bit;

shift3bit是引用函数的标识符。当你这样做 这样,在语义上它就像你做了类似的事情一样 这样:

int x;
...
x;

它什么都不做。您想要做的是调用该功能 包括名称后的括号:

shift3bit();

那将调用该函数。碰巧,你实际上需要传递一个 参数:

shift3bit(P);

我猜你是C的新手,你只是忘了把它包括在内 括号和参数。这是一个容易犯的错误。我现在就做 然后,我已经编程了数十年。

如果您对此一点不清楚,请返回并查看 教科书的一部分。 (是的,即使你转而学习Python作为 推荐的;以这种方式调用函数是非常普遍的 声明性语言。)