gpt4 book ai didi

c - 在 C 中传递字符串指针数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:55:09 27 4
gpt4 key购买 nike

我有一个简单的 C 函数,我想将一个指针数组传递给各种字符串。我遇到了编译器对我的函数调用参数咆哮的问题。这是我正在做的事情的简单表示,

myfunction.h

int myServices(int, char *[]);

myfunction.c

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

***

}

主程序.c

#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

}

C 编译器在 myService 调用中使用 stringptr 不断给我“成员的无效使用(你忘记了'&'吗?”)。我在 myService 调用中尝试了'&'和'*'没有运气的主要程序。任何想法。

最佳答案

我运行了你的代码并注意到了一些事情:首先在你的头文件中你没有正确定义参数(缺少逗号的情况),同样你的主入口点没有正确的返回类型(需要是 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

-

#include "func.h"

int main (int argc, char *argv[]) {

// 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);
return 0;
}

我使用命令 gcc -o prog.o prog.c func.c 编译了它,没有错误并且执行顺利。希望这对你有用

关于c - 在 C 中传递字符串指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50671077/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com