回复 9楼 TonyDeng
指针最基础的知识我懂我想问一下,
printf ("---->%d\n",*(address+i)); 这样写的话是不是相当于
printf ("---->%d\n",100); 假如我第一次输入的是100
总有人比你努力,可怕的是比你牛的人比你还努力。
#include <stdio.h> #include <stdlib.h> int main() { int i; int *address = (int *) malloc(sizeof(int) * 5); printf ("The first address of the system to allocate space:%p\n",address); for (i = 0;i < 5;i++) { printf ("%p---->",address+i); scanf ("%d",address+i); } free (address); //调试时发现free后会把address+0处的数据清0。为什么,书上说的是释放指针变量address所指向的动态空间,我的理解是释放malloc函数向系统申请的空间,释放内存。以便下次继续申请。 for (i = 0;i < 5;i++) { printf ("---->%d\n",*(address+i)); } return 0; }