Я работаю над разбиением строк.Различия между объявлением строки массива и указателем
Когда я запускаю этот код, у меня есть ошибка (Bus error: 10
на Mac OS или SegFault на Linux).
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *str = (char *)malloc(1000*sizeof(char));
str ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-");
}
return 0;
}
Когда я изменить декларацию по ул char str[] ="- This, a sample string.";
он работает хорошо.
Может ли кто-нибудь сказать мне, почему? Мой мозг тает.
Почему вы называете 'malloc', если вы не используете его возвращаемое значение? – rightfold
Это был простой пример: для реальной вещи требуется вернуть значение. – peletloick
Просьба опустить избыточный код из ваших примеров. Они только сбивают с толку. – rightfold