读书人

数组与直接开辟空间,该怎么处理

发布时间: 2012-06-05 13:54:06 作者: rapoo

数组与直接开辟空间
今天在看队列的时候 看到关于 int *的一个用法,
具体是: int *q;
q=malloc(5*sizeof(int ));
之后 就 q[1],q[2]的这么调用了.
我想问的是 这个和 int q[5];
然后再调用的区别是什么?
难道是一样的??[code=C/C++][/code]

[解决办法]
楼主没有看过指针的应用么?指针申请的内存区域在堆空间内,而你定义int q[5]在栈空间。q指向了用malloc出来的内存的首地址,然后使用p[x]其实的意思是p+x*sizeof(int)

读书人网 >C语言

热点推荐