无法在C函数内分配内存

时间:2020-05-02 03:07:40

标签: c memory

我正在尝试使用C获取未知长度的stdin。我尝试了以下代码。但是它说无法分配内存。谁能告诉我原因。

size_t len=sizeof(chunk);
char *read=malloc(len);
size_t len_chunk;

read[0]='\0';

do{
    fgets(chunk, sizeof(chunk),stdin);
    len_chunk = strlen(chunk);
    size_t len_read= strlen(read);

    if(len-len_read<len_chunk)
    {
        len *= 2;
        if ((read = realloc(read, len))==NULL)
        {
            perror("Unable to allocate memory");
            free(read);
            exit(1);
        }
    }

    strcpy(read+len_read, chunk);
    len_read+=len_chunk;

}while(chunk[len_chunk-2]!='\n');

0 个答案:

没有答案