IIC2333 / foro-2019-1

Foro oficial del curso IIC2333 - Sistemas Operativos y Redes, semestre 2019-1.
2 stars 0 forks source link

Duda C Struct Pointer Array #26

Closed auirarrazaval closed 5 years ago

auirarrazaval commented 5 years ago

Hola! Tengo una duda de implementación en C:

Supongamos que tengo mi struct: typedef struct MyStruct { ... } mystruct; Y tengo punteros a instncias de ese struct: mystruct * puntero = (struct*) malloc (...) Como debe estar definida mi array (dinámica) de punteros para que me permita asignar algo así como: array[i] = puntero He intentado las siguientes dos opciones, y ninguna me funciona:

# Pensando en que las direcciones de memoria son numeros:
int * array = (int*) malloc(...)
# Pensando en que el contenido del array van a ser mystruct's
mystruct * array = (mystruct*) malloc(...)

O es algo que no se puede hacer nomás?

IchottMano commented 5 years ago

Hola!

Para este caso, debes recordar que un array es un arreglo de memoria, y al mismo tiempo la variable que guardas como "array" es un puntero a la primera dirección de memoria del arreglo creado.

Ya que tienes un puntero que apuntará a un puntero de tu struct, debes usar doble estrella:

mystruct **array = malloc(...)
# No es necesario castear el malloc 😄 

De esta manera no tendrás problemas usando array[i] = puntero.

Saludos!