@ZER0112

Как исправить ошибку в C (невозможно преобразовать «void *» в "char *")?

Вот тут
Ошибка error C2440: инициализация: невозможно преобразовать "void *" в "char *"
//char *mem = malloc(strlen(str) + 1);

static inline char * strdup(const char *str)
{
	char *mem = malloc(strlen(str) + 1);
	strcpy(mem, str);

	return mem;
}


А вот тут
Ошибка error C2440: инициализация: невозможно преобразовать "void *" в "node_t *"
//node_t *node = malloc(sizeof(node_t));

void push(stack_t **top, const char *str)
{
	node_t *node = malloc(sizeof(node_t));

	node->str = strdup(str);
	node->next = NULL;

	if (!empty(top))
	{
		node->next = *top;
	}

	*top = node;
}
  • Вопрос задан
  • 647 просмотров
Пригласить эксперта
Ответы на вопрос 1
shsweb
@shsweb
Нужно так:
char *mem = (char *)malloc(strlen(str) + 1);
node_t *node = (node_t *)malloc(sizeof(node_t));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы