C(通过了null ptr)

时间:2018-09-13 08:02:26

标签: c pointers

在我的脚本中,我总是遇到一个null pointr passed错误。但是我不知道为什么。

我的代码:

    #define LineDlm 13
    #define CHUNK_SIZE 100

    char * temp;
    int tmp = LineDlm;
    char * Keys = malloc(1);
    Keys[0] = '\0';

    printf("\n-> ");
    for (i = 0; (tmp = getkey()) != LineDlm; i++)
    {
        if (sizeof(Keys) < i + 2)
        {
            temp = malloc(i + 2 + CHUNK_SIZE);
            for(x = 0; x <= i; x++)
            {
                temp[x] = Keys[x];
                temp[x + 1] = '\0';
            }
            temp[x] = '\0';
            free(Keys);
            Keys = temp;
        }
        printf("tmp: %c\n",tmp);
        printf("Size: %i\n",sizeof(Keys));
        printf("I: %i\n",i);
        Keys[i] = tmp;
        printf("Keys: %s\n",Keys);
        Keys[i + 1] = '\0';
    }
    printf("%s\n",Keys);

tmp总是给我正确的字符。 大小始终为4。 钥匙总是让我(null ptr passed)回来。

为什么他总是得到空指针?

0 个答案:

没有答案