Mr丶张 发表于 2020-4-2 18:46:55

关于动态内存的问题

本帖最后由 Mr丶张 于 2020-4-2 18:53 编辑

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

int main(void)
{
        char *ptr = NULL;
        int count = 0;
       
        ptr = (char *)malloc(sizeof(char));
       
        printf("请输入一段字符");

        while((ptr = getchar()) != '\n')
        {
                count++;

        //        ptr = realloc(ptr , count * sizeof(char));
               
        }

        printf("你输入的字符串倒过来是:");

        while(count--)
        {
                printf("%c",ptr);
        }
        puts("");

        free(ptr);

        return 0;
}


为什么把第十七行给注释了 还能free (ptr)

BngThea 发表于 2020-4-2 19:16:26

第9行不是malloc了吗

dlnb526 发表于 2020-4-3 19:41:03

同意楼上,因为 ptr = (char *)malloc(sizeof(char));已经对ptr赋值,所以自然可以free()
页: [1]
查看完整版本: 关于动态内存的问题