函数makearg应该计算char数组中的单词数,并将每个单词分解为指针数组中自己的位置。 分段错误似乎是strncpy函数的问题。
int makearg(char s[], char ***args); int main(){ char **args = (char**)(malloc(100)); char *str = "ls is a -l file"; int argc; argc = makearg(str, &args); printf("%d", argc); printf("%c", ' '); int i; for(i = 0; i < argc; i++){ puts(args); printf("%c", 'n'); } return 0; } ///////////////////////////////////////// int makearg(char s[], char ***args){ int argc = 0; int charc = 0; int wordstart = 0; while(1){ if(s[charc] == '