Compartir vía


Error en tiempo de ejecución de C R6016

espacio insuficiente para datos de subproceso

Nota:

Si aparece este mensaje de error al ejecutar una aplicación, esta se cerró porque tiene un problema de memoria interna. Hay muchas razones posibles para este error, pero a menudo se debe a una condición de memoria extremadamente baja, un error en la aplicación o un error en un complemento o una extensión usada por la aplicación.

Puede intentar seguir estos pasos para corregir este error:

  • Cierre otras aplicaciones en ejecución o reinicie el equipo para liberar memoria.
  • Use la página Aplicaciones y características o Programas y características del Panel de control para reparar o reinstalar la aplicación.
  • Use la página Aplicaciones y características o Programas y características del Panel de control para quitar, reparar o reinstalar las extensiones o complementos usados por la aplicación.
  • Compruebe Windows Update en el Panel de control para ver si hay actualizaciones de software.
  • Compruebe si hay una versión actualizada de la aplicación. Póngase en contacto con el proveedor de la aplicación si el problema persiste.

Información para programadores

Este error se produce porque el programa no recibió memoria suficiente del sistema operativo para completar una a _beginthread o _beginthreadex, o porque _beginthread o _beginthreadex no han inicializado el almacenamiento local para el subproceso.

Cuando se inicia un subproceso nuevo, la biblioteca debe crear una base de datos interna para el subproceso. Si la base de datos no se puede ampliar utilizando la memoria proporcionada por el sistema operativo, el subproceso no se puede iniciar y se detiene el proceso de llamada. Esto puede ocurrir cuando el proceso ha creado demasiados subproceso o si se ha agotado el almacenamiento local para el subproceso.

Recomendamos que los archivos ejecutables que llamen a la biblioteca en tiempo de ejecución de C (CRT) utilicen _beginthreadex para la creación de subprocesos en lugar de la API de Windows CreateThread. _beginthreadex inicializa el almacenamiento estático interno que usan muchas funciones CRT en el almacenamiento local de subprocesos. Si utiliza CreateThread para crear un subproceso, CRT puede finalizar el proceso con R6016 cuando se realiza una llamada a una función CRT que requiere que el almacenamiento estático interno se haya inicializado.