如何将二维数组作为参数传递?
char arr[2][128];
void fun(char *arr[])
{
printf("%s",arr[1]);
}
int _tmain(int argc, _TCHAR* argv[])
{
strcpy(arr[0], "google.com");
strcpy(arr[1], "google.cn");
fun((char **)arr);
}
我想打印google.cn....可是运行出错。
分析原因,是不应该将arr转化为char **,因为在fun中,编译器无法计算arr[1]和arr[0]的差值。
于是修改原型为:
void fun(char *arr, int Len)
{
printf("%s",arr + 1*Len);
}
fun((char *)arr, 128);
结果正确,但是看着变扭。。。
我看一般的main函数原型都是这样:
int _tmain(int argc, _TCHAR* argv[])
然后需要调用第一个参数时,直接
argv[1]即可,可不知为什么我的函数不能这样定义?如果想实现在调用直接使用arr[x]来访问第x行,请问该如何定义函数?