es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El depurador de VSCode no muestra el arreglo asignado con variables en cpp.

El depurador no lee la matriz asignada con variables

La imagen resume mi pregunta. Cuando asigno explícitamente una matriz como-

int allocated[5][3] = {/valores/};

Aparecen en el depurador sin problemas, como una matriz 2D con valores de 5×3, pero cuando lo hago a través de variables-

int processes = 5; resources = 3;
int maxNeed[processes][resources] = {/valores/};

no se muestran elementos en el depurador.

¿Tiene algo que ver con VSC o con mi código? Por favor, avíseme si hay alguna extensión adecuada para solucionar esto también.

Editar- Usar #define processed 5

define resources 3`

antes de main() también funciona bien, pero ¿por qué necesito usar #define para que funcione? ¿Por qué no variables normales?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el depurador en Visual Studio Code no puede mostrar el contenido de matrices asignadas dinámicamente. Esto puede deberse al hecho de que el tamaño de la matriz no se conoce en tiempo de compilación, lo que dificulta que el depurador determine la disposición de memoria de la matriz.

    Una posible solución a este problema es usar macros del preprocesador para definir el tamaño de la matriz antes de la compilación. Esto permite al compilador asignar la memoria para la matriz en tiempo de compilación, lo que debería facilitar que el depurador muestre su contenido.

    En cuanto a las extensiones que pueden ayudar con la depuración en Visual Studio Code, aquí tienes algunas populares:

    • CodeLLDB: Agrega soporte de depuración LLDB a Visual Studio Code, incluyendo puntos de interrupción, pilas de llamadas e inspección de variables.
    • C++ Intellisense: Proporciona autocompletado de código y resaltado de errores para código C++.
    • C++ TestMate: Ayuda a ejecutar y depurar pruebas de C++, con soporte para varios marcos de pruebas.

    Sin embargo, vale la pena señalar que si bien las extensiones pueden ser útiles, la causa raíz del problema puede estar en el propio código. Siempre es una buena idea revisar tu código cuidadosamente y asegurarte de que siga las mejores prácticas y estándares.

Comments are closed.