超凡天赐 发表于 2017-1-16 16:51:35

小甲鱼老师说如果这样使用free(),第二次就打印不出来了?可是我还是打印出来了

本帖最后由 超凡天赐 于 2017-1-21 23:04 编辑

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int *ptr=NULL;
    int num,i;
    scanf("%d",&num);
    ptr=(int *)malloc(num*sizeof(int));
    for(i=0;i<num;i++)
    {
      scanf("%d",ptr+i);
    }
    for(i=0;i<num;i++)
    {
      printf("%d",*(ptr+i));
    }
    free(ptr);
    printf("\n");
    for(i=0;i<num;i++)
    {
      printf("%d",*(ptr+i));
    }
    return 0;
}

人造人 发表于 2017-1-16 18:09:12

因为你用的编译器没有立刻修改那段内存,我的就不行了
页: [1]
查看完整版本: 小甲鱼老师说如果这样使用free(),第二次就打印不出来了?可是我还是打印出来了