Си, Си++, Нарушение доступа для записи
void separateAndPrint(char* string, int start)
{
int i = start;
int count = 0;
while (string[i] != '\0' && string[i] != ' ')
{
count++;
i++;
}
//Выделяем память под слово
char* word = (char)malloc(100);
if (word != NULL) {
for (int i = 0; string[start] != ' ' && string[start] != '\0'; i++, start++)
{
word[i] = string[start]; //тут ошибка[![введите сюда описание изображения][1]][1]
}
word[i + 1] = '\0';
for (int i = 0; word[i] != '\0'; i++)
{
printf("%c", word[i]);
}
}
return word;
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
char* word = (char)malloc(100);
Здесь происходит урезание 32 или 64 бит указателя до 8 бит char. ВероятноЮ вы хотели написать
char* word = (char*)malloc(100);
Но если у вас С, то вообще никакое приведение не надо — вполне сработает
char* word = malloc(100);
Приведение требуется только в С++.
