在我的脚本中,我总是遇到一个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)
回来。
为什么他总是得到空指针?