为什么用VS stdio调试逐语句调试没调试两句就跳到这个页面

为什么当我用vs stdio逐语句调试没调试两句就跳到这个页面

img

那肯定是printf语句写的不对,贴出来看看

这段代码没什么问题啊:

#include <stdio.h>
int main()
{
    char string[50], *p1;
    int i, j, k=0, m, e10, num = 0, a[10], *p2;
    printf("input a string:\n");
    gets(string);
    i = 0; j = 0;
    while (*(string + i) != '\0')
    {
        if (*(string + i) >= '0' && (*(string + i) <= '9'))
        {
            num = num * 10 + (*(string + i) - 48);
            k = 1;
        }
        else {
            if (k == 1)
            {
                a[j] = num;
                j++; k = 0;
                num = 0;
            }
        }
        i++;
    }
    if (*(string + i - 1) >= '0' && (*(string + i - 1) <= '9'))
    {
        a[j] = num;
        j++; k = 0;
    }
    for (i = 0; i < j; i++)
        printf("%5d", a[i]);
    return 0;
}