我有一个程序在选项参数(-r,-d 等)之后采用非选项参数(从命令行),并将每个非选项参数插入到数组中。可以输入的非选项参数的最大数量是 25。
但问题是当我运行程序时出现“总线错误 10”错误,我不知道为什么。我看过很多有类似问题的帖子,但似乎无法解决我的问题。
代码是:
void loop_namelist(int argc, char *argv[])
{
int index = 0;
--optind;
char *buff_namelist[25]; //the array that the arguments are stored in
*buff_namelist = malloc(25 * 25); //allocating some memory for the array
while (optind < argc) //loop until no arguments left
{
strcpy(buff_namelist[index], argv[optind]);
++index; //move to next index in array
}
}
当我这样运行它时:
./program -r arg1 arg2
我得到一个总线错误。