以下代碼片段在爲最後一個arg分配內存時會出現分段錯誤。我究竟做錯了什麼?謝謝。將數組的內存分配給字符指針
int n_args = 0, i = 0;
while (line[i] != '\0')
{
if (isspace(line[i++]))
n_args++;
}
for (i = 0; i < n_args; i++)
command = malloc (n_args * sizeof(char*));
char* arg = NULL;
arg = strtok(line, " \n");
while (arg != NULL)
{
arg = strtok(NULL, " \n");
command[i] = malloc ((strlen(arg)+1) * sizeof(char));
strcpy(command[i], arg);
i++;
}
謝謝。
好讀書,那個。 – dmckee 2010-05-25 18:39:03