#include <stdio.h>
#include <stdlib.h>
typedef struct {
unsigned length;
} List;
void init(List *l) {
l = (List *) malloc(sizeof(List));
l->length = 3;
}
int main(void) {
List *list = NULL;
init(list);
if(list != NULL) {
printf("length final %d \n", list->length);
return 0;
}
return 1;
}
Esta es una versión simplificada del código que me está causando problemas. Estoy intentando construir el puntero *list
a partir de un método donde se pasa *list
como parámetro.C - No se puede insertar un puntero pasado como argumento
Sé que puedo hacer que void init(List *l)
funcione al cambiarlo a void init(List **l)
, pero esto es para un tutorial de clase. No puedo cambiar los argumentos del método. He pasado cuatro horas trabajando en esto.
Quiero asegurarme de que no hay forma de hacer que void init(List *l)
funcione antes de enfrentarme con mi profesor.
Gracias de antemano
El PO se menciona específicamente si se puede hacer evitando "void init (List ** l)" –
@Gunner direccionado – meagar
La asignación especifica que debe ser el constructor. Voy a enviar un correo electrónico a mi profesor y pedirle que cambie los requisitos. ¡Gracias por tu ayuda! –