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

在C语言中传递字符串指针数组

在C语言中传递字符串指针数组,c,arrays,parameter-passing,C,Arrays,Parameter Passing,我有一个简单的C函数,我想传递一个指向各种字符串的指针数组。我在函数调用参数上遇到编译器吠叫的问题。这是我正在做的简单描述 myfunction.h int myServices(int, char *[]); myfunction.c #include <myfunction.h> int myService(int value, char *strpointer[]) { *** } #include <myfuntion.h> void main ()

我有一个简单的C函数,我想传递一个指向各种字符串的指针数组。我在函数调用参数上遇到编译器吠叫的问题。这是我正在做的简单描述

myfunction.h

int myServices(int, char *[]);
myfunction.c

#include <myfunction.h>
int myService(int value, char *strpointer[]) {

   ***

}
#include <myfuntion.h>
void main () {

   // Initialize Parameters
   int result;
   int stringcnt;
   char string1[8] = "-st";
   char string2[8] = "-ir";
   char * stringptr[10];

   // Initialize stringptr
   stringptr[0] = string1;
   stringptr[1] = string2;
   stringcnt = 2;

   // Call Service
   result = myService(stringcnt, stringptr); <== gcc issue with stringptr

}
#包括
int myService(int值,char*strpointer[]{
***
}
mainproduction.c

#include <myfunction.h>
int myService(int value, char *strpointer[]) {

   ***

}
#include <myfuntion.h>
void main () {

   // Initialize Parameters
   int result;
   int stringcnt;
   char string1[8] = "-st";
   char string2[8] = "-ir";
   char * stringptr[10];

   // Initialize stringptr
   stringptr[0] = string1;
   stringptr[1] = string2;
   stringcnt = 2;

   // Call Service
   result = myService(stringcnt, stringptr); <== gcc issue with stringptr

}
#包括
空干管(){
//初始化参数
int结果;
int-stringcnt;
char string1[8]=“-st”;
字符字符串2[8]=“-ir”;
char*stringptr[10];
//初始化stringptr
stringptr[0]=string1;
stringptr[1]=string2;
stringcnt=2;
//呼叫服务

result=myService(stringcnt,stringptr);我运行了您的代码并注意到一些事情:首先,在头文件中,您没有正确定义参数(缺少coma),同样,您的主入口点也没有正确的返回类型(需要为int)或参数(int-argc,char*argv[]).我已经做了更改,并将其附在下面:

 // func.h

int myService(int, char*[]);
然后输入功能代码:

// func.c

#include "func.h"

int myService(int value, char *strpointer[]) {
        // your code here
        return 0;
}



// prog.c
-


我使用命令
gcc-oprog.oprog.cfunc.c
编译了这篇文章,没有任何错误,执行也很顺利。希望这对你有用我运行了你的代码,并注意到了一些事情:首先,在你的头文件中,你没有正确定义参数(在缺少coma的情况下),同样,您的主入口点也没有正确的返回类型(需要为int)或参数(int-argc,char*argv[])。我已进行了更改,并将其附加到下面:

 // func.h

int myService(int, char*[]);
然后输入功能代码:

// func.c

#include "func.h"

int myService(int value, char *strpointer[]) {
        // your code here
        return 0;
}



// prog.c
-


我使用命令
gcc-oprog.oprog.cfunc.c
编译了这篇文章,没有错误,执行也很顺利。希望这篇文章对你有用

我注意到的几点…
int-myServices(int-char*[]);
int-myService(int-value,char*strpointer[])
没有对齐?是哪一个?缺少逗号。已编辑的源代码。
void main(argc,argv[])
——真的吗?你的书就是这么说的?很抱歉出错了。我只是在没有使用IDE的情况下键入了一个具有代表性的示例。只是试图让代码集中在问题上。或者
int main()
或者
int main(int argc,char*argv[])
(或者
char argv
,哪个更正确但出于个人原因,我不喜欢)。至于提出一个问题,你要做的第一件事是删除多个文件。是的,这就是你希望它在项目中的外观。不,这与你在这里提出的问题无关。将试图重现你的问题的人的工作量减到最低。这通常有助于解决一些问题。我不知道有几件事ice…
int-myServices(int-char*[]);
int-myService(int-value,char*strpointer[])
不对齐?哪一个?缺少逗号。已编辑的源代码。
void main(argc,argv[])
--真的吗?你的书就是这么说的?很抱歉出错了。我只是在没有使用IDE的情况下键入了一个具有代表性的示例。只是试图让代码集中在问题上。或者
int main()
或者
int main(int argc,char*argv[])
(或者
char**argv
,这将是“更正确的”但出于个人原因,我不喜欢)。至于提出一个问题,你要做的第一件事是删除多个文件。是的,这就是你希望它在项目中的外观。不,这与你在这里提出的问题无关。将试图重现你的问题的人的工作量减到最低。这通常有助于解决一些问题。我验证了我的同事我在“main”中删除了myService调用中的“result=”命令编译器停止了吠叫。我在myService中有正确的返回整数值。不确定为什么会发生这种情况,但我有足够的时间继续调试。感谢帮助。我验证了我的代码与您的代码,发现它是等效的。我在“main”中从myService调用中删除了“result=”编译器停止了吠叫。我在myService中有正确的返回整数值。不确定为什么会发生这种情况,但我有足够的时间继续调试。谢谢你的帮助。