Pregunta

He buscado una buena explicación pero no puedo encontrarla.

Podría intentar escribir yo mismo, pero preferiría que alguien con mejor inglés pudiera ayudarme a explicar esto para Zan Lynx en el comentario aquí .

... y parece que debería haber una buena explicación en algún lugar, ¿por qué no aquí?

¿Fue útil?

Solución

Cuando una biblioteca administra algunas estructuras de datos en nombre de un programa (por ejemplo, las ventanas en una aplicación GUI son administradas por el sistema operativo), por lo general mantiene el contenido de esas estructuras en privado. Sin embargo, normalmente es útil para el programa mantener algunos datos adicionales específicos para el uso de esas estructuras por parte del programa. Por lo tanto, una biblioteca a menudo proporcionará acceso a un campo (a menudo llamado datos de usuario ) que almacena con cada estructura.

Un uso común del campo de datos del usuario por parte de un programa es asignar algo de memoria cada vez que el programa solicita a la biblioteca que cree una estructura y almacenar el puntero a esa memoria en el campo de datos del usuario proporcionado por la biblioteca. el término userdata pointer .

Otros consejos

Mire sqlite3_exec () & # 8211; llama a una devolución de llamada (tercer parámetro) para cada fila recuperada y pasa un puntero que proporciona (cuarto parámetro) a esta devolución de llamada. Esto puede ser un puntero a cualquier objeto que desee & # 8211; tienes que lanzarlo adecuadamente antes de poder acceder al objeto puntiagudo. Este objeto se llama un objeto de datos de usuario y un puntero a él se llama un puntero de datos de usuario.

En el caso de sqlite3_exec (), puede pasar un puntero a un contenedor que debe almacenar todas las filas de la tabla recuperada al completar la solicitud.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top