Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 而循环不';初始化_C_Loops_While Loop_Ubuntu 16.04_Wchar T - Fatal编程技术网

C 而循环不';初始化

C 而循环不';初始化,c,loops,while-loop,ubuntu-16.04,wchar-t,C,Loops,While Loop,Ubuntu 16.04,Wchar T,我有个问题。下面是一个处理宽字符串宽度的函数。我的程序在断点1之后进入无限循环。我的线圈怎么了 static void ft_wstr_width(void) { wchar_t *temp; size_t delta; size_t len; size_t i; wint_t wc; len = ft_wstrlen(g_ws); delta = (size_t)g_fmt.width - ft_wstrsize(g_ws);

我有个问题。下面是一个处理宽字符串宽度的函数。我的程序在断点1之后进入无限循环。我的线圈怎么了

static void ft_wstr_width(void)
{
    wchar_t *temp;
    size_t  delta;
    size_t  len;
    size_t  i;
    wint_t  wc;

    len = ft_wstrlen(g_ws);
    delta = (size_t)g_fmt.width - ft_wstrsize(g_ws);
    printf("(%d %zd)\n", g_fmt.width, ft_wstrsize(g_ws));
    temp = (wchar_t *)malloc(sizeof(wchar_t) * (len + delta + 1));
    temp[len + delta] = L'\0';
    if (g_fmt.flags[0])
    {
        wc = (QWSZ ? L'0' : L' ');
        i = 0;
        while (i < delta);
        {
            temp[i] = wc;
            ++i;
        }
        ft_wcopy(temp, g_ws, delta, len);
    }
    else
    {
        printf("[bp0]"); getchar(); // BREAKPOINT 0
        ft_wcopy(temp, g_ws, 0, len);
        i = len;
        printf("[bp1]"); getchar(); // BREAKPOINT 1
        while (i < len + delta);
        {
            printf("[bp2]"); getchar(); // BREAKPOINT 2
            temp[i] = L' ';
            ++i;
        }
    }
    printf("[bp3]"); getchar(); // BREAKPOINT 3
    free(g_ws);
    g_ws = temp;
}
静态空隙ft\u wstr\u宽度(空隙)
{
温度;
三角洲大小;
尺寸透镜;
尺寸i;
温特沃克;
len=ft_wstrlen(g_-ws);
delta=(尺寸t)g_fmt.width-ft_wstrsize(g_ws);
printf((%d%zd)\n),g_fmt.width,ft_wstrsize(g_ws));
temp=(wchar_t*)malloc(sizeof(wchar_t)*(len+delta+1));
温度[len+delta]=L'\0';
if(g_fmt.flags[0])
{
wc=(QWSZ?L'0':L');
i=0;
而(i
-----UBUNTU终端输出-----

stanislav:gh\u ft\u printf>>:/a.out
(15 3)
[bp0]
[bp1]这里没有反应(程序继续运行)并且
^Ci


分号

调试器会向您显示,您在(i由于额外的分号。打开编译器警告可能也会告诉您这一点。@Raymond-听起来他好像在使用调试器。我猜他不知道如何解释他在调试器下看到的结果。噢。。。。对)谢谢!
stanislav:gh_ft_printf >>: ./a.out                                          
(15 3)
[bp0]
[bp1]         No reaction here (program keeps running) and
^C    <----   I have to kill the process with Ctrl+C