尝试访问字符指针数组时出现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*/