| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 918 人关注过本帖
标题:初学数据结构,大家看一个很简单线性结构的函数
取消只看楼主 加入收藏
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:5 
初学数据结构,大家看一个很简单线性结构的函数

void Set(i,length,0)
{
    int p[10]={1,2,3,4,5,6,7,8,9,0};                     
    //p=(int *)malloc((LIST_size)*sizeof(int));
    int *p1;
    p1=(int *)realloc(p,(LIST_size+10)*sizeof(int));
    int *p2;
    p2=p1+i-1;
    int *p3;
    for (p3=p1+LIST_size+10-1;p3>=p2;p3--)
        *(p3+1)=*p;
    *p2=0;
    length++;
}

其实就是打算用realloc扩展后,存入传入的第i的数字0,但是程序可以编译,但是提示是realloc出错了 ,大家帮帮忙
搜索更多相关主题的帖子: 初学 函数 线性 数据结构 
2010-03-12 21:32
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
以下是引用ldg628在2010-3-12 22:21:06的发言:

 int p[10]={1,2,3,4,5,6,7,8,9,0}; 这个p指向的空间是栈,并且p是一个常量,相当于具有const属性
realloc分配的空间是在栈上的,so。。。用你注释掉了的那段代码int *p=(int *)malloc((LIST_size)*sizeof(int));并用 ...
恩 可以还说得详细一点吗? p为什么是个常量? 指针常量吗? 有const属性的您所说的常量有哪些呢?
2010-03-12 22:52
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
以下是引用陈大师在2010-3-12 22:01:09的发言:

难道是头文件问题~~~~
#include
using namespace std;
加上这个!试试看咯~~~~
我试了 还是这个问题 估计是楼下那位兄弟说的const属性的问题~~~感谢你第一个回帖,呵呵呵

[ 本帖最后由 jbddd 于 2010-3-13 01:06 编辑 ]
2010-03-12 22:52
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
以下是引用ldg628在2010-3-12 23:17:57的发言:

p是个常量是编译器规定的,一般的数组名都是常量,它们的值是不能改变的,在定义它们时,它们的空间就已经被程序自动分配下来了,并且是固定下来了的,相当于定义一个变量a,它的地址&a也是一个常量,我们是不能改变 ...
realloc不是来先在内存开一块空间,再把p的内容复制过来吗? 也就是返回的是新的内存的空间首地址,不存在去改开始原始的p所含的内容啊?我这里理解的realloc中的p指针只用来起一个引用的作用,不知道是不是?还请多多的指教。。。
2010-03-12 23:27
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
以下是引用ldg628在2010-3-12 23:52:56的发言:

p虽然是一个指针,但它的值是固定了的,它的值就代表了它要指向的空间和它自己,而一般的指针是它的值代表它要指向的空间,但它自己本身是要空间来存储,它是一个变量
数组一般都是在栈上或者数据段上,而realloc申请 ...
您的意思是realloc直接也只能是操作堆上的数据,然而编译器把p分配配到了除了堆以外的地方,例如说栈和数据段,所以只能把要操作的数据分配到堆,例如开一块内存malloc重新分配在堆上,再用realloc操作是不是?
另外是“如果想动态的申请空间,用栈时,在函数返回后栈上的数据就会被冲掉,不会被保留,这与malloc使用的初衷不符,realloc应该会检查地址
”是什么意思? 初衷指的是什么呢?谢谢了

[ 本帖最后由 jbddd 于 2010-3-13 00:06 编辑 ]
2010-03-13 00:04
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
很感谢~~~
2010-03-13 01:04
快速回复:初学数据结构,大家看一个很简单线性结构的函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024023 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved