写栈的时候想要给数组分配空间。。。结果不行,因为只有指针地址可以分配空间
#include<stdio.h>
#include<stdlib.h>
int main ( void )
{ int counter=1;
int fun[10]; int *fun_p=fun;
fun_p=(int *)malloc(sizeof(int) *10); //////////////
for(;counter<=9;counter++ ) //如果counter是 10 以上可以编译,但是运行错误
*(fun_p++)=counter;
fun_p--;
for( counter=1;counter<=9;counter++ )
printf ( " %d " ,*(fun_p--) );
}
in fun[10]后用fun_p头指针 malloc 进行分配空间
相当于给fun_p重新分配空间了,所以大小是10个Int ,fun_p指正不再指向 fun,(fun的空间依旧存在)
fun_p ++ 赋值时指针会移动