realloc() 在这段代码中实际上做了什么?

问题描述 投票:0回答:1
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {

    char *s;
    s = malloc(1024 * sizeof(char));
    scanf("%[^\n]", s);
    // s = realloc(s, strlen(s) + 1);
    for(int i=0;i<strlen(s);i++)
    {
        if(s[i]==' ')
           printf("\n");
        else {
        printf("%c",s[i]);
        }
    }
   
    return 0;
}

这是 hackkerrank 的一个问题,虽然我评论了 realloc() 该程序工作正常,但我以为我不会工作! 我很好奇 realloc() 是做什么的,顺便说一句,我目前正在学习指针基础知识。

c pointers realloc
1个回答
0
投票

请参阅 https://en.cppreference.com/w/c/memory/realloc

realloc
确实将内存缩小到此处所需的空间,因此分配的 1024 字节的其余部分可以由另一个 malloc 调用使用。

© www.soinside.com 2019 - 2024. All rights reserved.