我有这样一个数组:
const char arg_arr[][100] = {
"a",
"b",
"c",
"d",
};
然后我有这样一个方法ParsecMDLine(const char*argv[]);
因此,为了传递我的arg_arr
,我需要获取指向它的指针。
我尝试以parsecmdline(*arg_arr)
或类似于parsecmdline(&arg_arr)
的方式调用此方法,但它不起作用。
问题是-如何传递这个arr作为指针?
更改:
const char arg_arr[][100] = {
...
};
致:
const char *arg_arr[] = {
...
};
arg_arr
是char
数组的常量数组,与ParsecMDLine
所期望的类型不同:指向常量char
数组指针的数组的指针。
您应该这样定义arg_arr
:
const char *arg_arr[] = {
"a",
"b",
"c",
"d",
NULL
};
并将其直接作为ParsecMDLine(arg_arr)
传递。
请注意,ParsecMDLine
必须有一种方法来告诉数组中存在多少元素。 或者将此计数作为额外的参数传递(argc
),或者在最后一个字符串后面添加一个尾随的null
指针,如上所示,或者两者兼而有之,如main()
函数的参数所做的那样。
如何获得数组上的指针?
有关您所提供内容的可用选项(不更改代码):
按数字计算:
按字母顺序排列:
这里有一个我想可能会有帮助的指南。