Я написал функцию C, чтобы взять char * в качестве входа и разделить его, используя пробел и сохранить токены снова в массиве строк.Функция выполняет, но дает ошибку сегментации, C
Мой код выполняется должным образом, но прежде чем он завершит выполнение, он выдает сообщение об ошибке сегментации. Может ли кто-нибудь показать мне, что не так.
void parseCommand(char *msg)
{
char buffer[25][30];
char *tok;
char *msgCopy;
//strcpy(msgCopy,msg);
msgCopy =msg;
tok = strtok(msgCopy," ");
strcpy(buffer[0],tok);
int i=1;
while(tok != NULL){
tok = strtok (NULL, " ");
strcpy(buffer[i],tok); //me line eke error eka
printf("%d : %s\n",i,buffer[i]);
i++;
}
}
Вы не указали вход, который приводит к сбою. Я думаю, вы просто переполняете «буфер» слишком длинными строками. – Netch