Tengo una estructura bastante simple en algún código C que simplemente contiene algunos punteros y me gustaría inicializarla estáticamente si es posible. ¿Puedo y, si es así, cómo?¿Es posible inicializar una estructura sin usar una función?
12
A
Respuesta
15
Puede, si los punteros apuntan a objetos globales:
// In global scope
int x, y;
const struct {int *px, *py; } s = {&x, &y};
5
const struct mytype foo = {&var1, &var2};
1
una estructura const puede solamente pueden inicializar estáticamente.
0
Pero si hay algo de struct
de la siguiente manera:
struct Foo
{
const int a;
int b;
};
y queremos crear dinámicamente el puntero a la struct
usando malloc
, por lo que puede jugar el truco:
struct Foo foo = { 10, 20 };
char *ptr = (char*)malloc(sizeof(struct Foo));
memcpy(ptr, &foo, sizeof(foo));
struct Foo *pfoo = (struct Foo*)ptr;
esto es muy útil especialmente cuando alguna función necesita devolver el puntero a struct Foo
Cuestiones relacionadas
- 1. posible definir una función dentro de una estructura C?
- 2. ¿Es posible descomprimir una tupla sin usar variables?
- 3. ¿Hay alguna forma de inicializar miembros de una estructura sin usar un constructor?
- 4. Inicializar y devolver una estructura en una línea en C++
- 5. cómo inicializar una estructura estática en C++?
- 6. Inicializar una estructura que contiene el vector
- 7. ¿es posible agregar una lista a una estructura?
- 8. es posible convertir una cadena a varbinary en PHP sin usar la función SQL
- 9. ¿Cómo inicializar un puntero a una estructura en C?
- 10. ¿Es posible actualizar elementos dentro de una lista (de estructura)?
- 11. ¿Es posible usar pyplot sin DISPLAY?
- 12. ¿Es posible definir una función local en una consulta TSQL?
- 13. Una función dentro de una estructura if
- 14. ¿Cómo inicializar una matriz de estructura en C++?
- 15. ¿Es posible usar Xtext sin eclipse?
- 16. ¿Para qué puedes usar una estructura o unión sin nombre?
- 17. Inicializar estructura incrustada en Ir
- 18. ¿Es posible/aconseja almacenar un vector en una estructura? C++
- 19. ¿Es posible crear una estructura de árbol dinámica usando ExpandoObject?
- 20. ¿Es posible reemplazar una función dentro de una clase PHP?
- 21. Cómo inicializar const en una estructura en C (con malloc)
- 22. ¿Cómo debo inicializar correctamente una estructura C desde C++?
- 23. La eficiencia al usar una estructura de big data en una función en Python
- 24. ¿Cómo puedo escribir una estructura sin bloqueo?
- 25. ¿Por qué no podemos inicializar miembros dentro de una estructura?
- 26. cómo inicializar miembros en Ir estructura
- 27. ¿Hay una mejor manera de inicializar una Hastable en .NET sin usar el método Add?
- 28. ¿Es posible pasar cout o fout a una función?
- 29. ¿Es posible modificar el valor de retorno de una función sin definir una nueva función en python?
- 30. ¿Es posible declarar una función sin argumentos pero luego pasar algunos argumentos a esa función sin aumentar la excepción?