C 如何将数组传递给函数,对其执行一些操作,然后将其返回到main?
我正在编写一个程序来加密一些数据,为了做到这一点,我需要将一个数组传递给一个函数,然后它必须返回给main。我试图这么做,但一旦执行,我就会收到这样一条消息:“分段错误(核心转储)” 我就是这样做的:C 如何将数组传递给函数,对其执行一些操作,然后将其返回到main?,c,arrays,C,Arrays,我正在编写一个程序来加密一些数据,为了做到这一点,我需要将一个数组传递给一个函数,然后它必须返回给main。我试图这么做,但一旦执行,我就会收到这样一条消息:“分段错误(核心转储)” 我就是这样做的: void shift3bit(int P[64]) { /*some operations*/ } void main(void) { int P[64]; shift3bit; } 非常感谢您的帮助,我是编程新手。将相关函数称为: shift3bit (P); 不是
void shift3bit(int P[64])
{
/*some operations*/
}
void main(void)
{
int P[64];
shift3bit;
}
非常感谢您的帮助,我是编程新手。将相关函数称为:
shift3bit (P);
不是
好的,首先是布景演讲。如果你以前从未编程过, 你学错语言了。C是低水平的,你也会花钱 在指针和内存管理上浪费了很多时间 追逐不知名的虫子。Python对于您的第一个用户来说是一个更好的选择 语言它会让你专注于程序及其逻辑,而不是 有点胡闹 至于这个问题,很简单。您正在这样做:
shift3bit;
shift3bit
是引用函数的标识符。当你这么做的时候
这样,从语义上来说,它就像你做了
这:
它一点作用也没有。您要做的是通过调用函数
包括名称后的括号:
shift3bit();
这将调用函数。事实上,你需要通过考试
参数也是:
shift3bit(P);
我猜作为C语言的新手,您只是忘记了包含
括号和参数。这是一个容易犯的错误。我现在就做
然后,我已经编程几十年了
如果您对其中任何一点都不清楚,请返回并回顾一下
教科书的一部分。(是的,即使你转而学习Python作为
推荐使用;这种方式调用函数在许多应用程序中非常普遍
声明性语言。)
void-shift3bit(int-p[64])
与void-shift3bit(int-p*)
相同。你正在传递一个指针,只需修改它。它没有解决问题什么问题?您几乎不向我们显示代码和shift3bit代码>无论如何都是胡说八道。那怎么能通过编译器呢?它应该是shift3bit(p)代码>不<代码>移位3位代码>@cad:哦,它会通过编译器的。如果你要求的话,你可能会得到一个警告,但它会编译得很好。这句话没什么用。虽然正确,但这并不能解释任何事情。OP认为自己是一名新的程序员。一些解释是恰当的。
shift3bit();
shift3bit(P);