数组与直接开辟空间
今天在看队列的时候 看到关于 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)