将指针传递给C语言中的函数的正确方法

时间:2013-10-18 09:39:59

标签: c arrays pointers

下午全部, 我写了一大堆代码无法正常工作。我想要做的是将数组作为参数传递给函数,所以当我从函数返回时,我可以继续使用数组。我的下面的代码给了我一个SEG错误或'非法指令'错误,它是随机的。如果这是将数组传递给函数的方式,那么有人可以给出一些补充。

struct message sMsg[nodeCount];
/* get contents into an array */
getFile(file, sMsg);

void getFile (FILE *file, struct message sMsg*) {
.....
}

2 个答案:

答案 0 :(得分:3)

更改

void getFile (FILE *file, struct message sMsg*) 

void getFile (FILE *file, struct message *sMsg) 

但这不会是SEGFAULT,它是编译时错误。

答案 1 :(得分:3)

更正确以下列方式声明函数指定第三个参数

void getFile (FILE *file, struct message *sMsg, size_t n );

并将其命名为

getFile( file, sMsg, nodeCount );