方法一:形参给出第二维的长度。
例如:
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char str[][5]){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
func(3,str);
return 0;
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char str[][5]){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
func(3,str);
return 0;
}
方法二:形参声明为指向数组的指针。
例如:
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char (*str)[5]){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
func(3,str);
return 0;
}
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char (*str)[5]){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
func(3,str);
return 0;
}
方法三:形参声明为指针的指针。
例如:
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char **str){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
p[0]=&str[0][0];
p[1]=str[1];
p[2]=str[2];
func(3,p);
return 0;
}
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char **str){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
p[0]=&str[0][0];
p[1]=str[1];
p[2]=str[2];
func(3,p);
return 0;
}