小编Ka *_*tsu的帖子

循环结束条件不起作用 - C

我有一个关于动态数组的作业,因此我试图理解它如何与简单的程序一起工作.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main()
{
    int cnt,i=0;
    char temp[1001];
    char *obj[5];

    scanf("%d",cnt);

    while(i<cnt){

        scanf("%s",temp);
        obj[i]=malloc(sizeof(char)*(strlen(temp)+1));
        obj[i]=temp;
        printf("%s\n",obj[i]);
        printf("%d\n",i);
        i++;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我得到"cnt"等于5时,通过从stdin读取,程序将永远运行,尽管结束条件满足.但是当我得到"cnt"等于5时,通过分配它,在程序的最开始(不是通过使用scanf)程序工作得很好.可能是什么原因?

c arrays loops dynamic

-1
推荐指数
1
解决办法
111
查看次数

标签 统计

arrays ×1

c ×1

dynamic ×1

loops ×1