尝试访问字符指针数组时出现Segmantation错误

所以我创建了一个函数,通过使用[]运算符处理一个char指针数组。 function

int fetchargs(char **argv){ argv[0][0] = 'A'; }; 

会导致分段错误。 我传递一个字符指针数组,初始化如下

 char argv[ARG_NUM][MAX_LINE]; 

试图找出原因,但没有成功

什么可能是issuse?

char ** argv指向字符指针double pointer
其中argv[ARG_NUM][MAX_LINE]本质上是一个2D字符数组

这里的底线是尊重数据类型

 char argv[ARG_NUM][MAX_LINE]; ......... ......... int fetchargs(char argv[][MAX_LINE]){ argv[0][0] = 'A'; return 0; }; 

这就是你应该如何将它传递给函数,因为它不是char ** 。 你必须删除; 在花括号之后。

 /*Dim is your ARG_NUM and dim2 MAX_LINE*/ int fetchargs(int dim1,int dim2,char pass[][MAX_LINE]){ /*Some stuff*/ return 1; }/*You've a semicolon here*/