Я хочу получить любые переменные в моем коде, поэтому я использовал тип void * для принятия других. Но я могу получить char *, но не в значениях int. И я не понимаю, как я могу это сделать. Вот мой код:Void * to char или int in C
void insertion(t_liste *liste, void *newValue) {
t_element *new = malloc(sizeof(void *));
int i;
int *j = &i;
if (liste == NULL || new == NULL) {
exit(EXIT_FAILURE);
}
if (newValue == j || (char *)newValue) {
new->value = newValue;
new->suivant = liste->premier;
liste->premier = new;
liste->taille++;
new->index = liste->taille;
}
}
В моей основной я
insertion(maListe, 5);
он не работает, но если бы я сделал это:
insertion(maListe, "test");
Он работает. Но я хочу обе работы! Вот мой .h
typedef struct s_element t_element;
typedef struct s_liste t_liste;
struct s_element{
int index;
void *value;
t_element *suivant;
t_element *precedent;
};
struct s_liste{
t_element *premier;
t_element *dernier;
int taille;
};
Любая идея?
Использование 'new' в качестве имени переменной - это не очень хорошая идея. –
@ EdHeal - отличная идея, означает, что идиоты, которые думают« использовать компилятор C++ для компиляции c-кода », являются хорошей идеей, на самом деле в конечном итоге теряют время –
'void *' - указатель на любой тип. '5' не является указателем, а числом. Числа не являются указателями. – Gerhardh