malloc分配空间的问题
malloc()是堆式分配吗?
如果是,那么不用malloc而是直接的 int i; 是什么样的分配方式?
两者除了malloc要用free以外有没有其他的区别啊?
谢谢!
[解决办法]
指针和指针所指的对象是两个不同的变量。
就好像
int i = 3;
i 和 3的关系并不是永远对应的,i 是一个存储空间, 3只不过是内容。内容变了,i 本身还是那块存储空间。
int *c = "c ";
也是这样的关系, 这里字符串的地址就是c指针的内容, c指针的内容变了,指向另一个对象,c 还是在那里。
其实指针和普通变量没有什么区别,一样是一块空间,只是大家所放的内容不同,所支持的操作不同。 指针同样也有地址, &c这个就是指针的地址,这和&i是一个道理,只是指针有一个特别的操作, *c ,这个可以取得他指向对象的空间。