| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 535 人关注过本帖
标题:[求助]内存分配的问题
只看楼主 加入收藏
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
收藏
 问题点数:0 回复次数:0 
[求助]内存分配的问题
#include<stdio.h> //#include<malloc.h> #include<stdlib.h> #define ADDLIST 10 #define LIST_INIT_SIZE 100 typedef struct { int *p; int length; //表的长度 int listsize; // 表的实际大小 }*SqList; void creatSqList(SqList r,int n) { int i; int *q; r->length = 0; r->p = (int *)malloc(LIST_INIT_SIZE*sizeof(int)); q = r->p; if(r->p == NULL) exit(0); //fail to assign storage for(i=0;i<n;i++) { printf("输入第%d个值:",i); scanf("%d",(r->p)++); r->length++; } r->p = q; r->listsize = LIST_INIT_SIZE; //assign size(at the begin) } /*void uniteSqList(SqList r1,SqList r2,SqList r3) { int r1_last,r2_last; r3->listsize = r3->length = r1->length + r2->length; r3->p = (int *)malloc(r3->listsize*sizeof(int)); if(r3->p==NULL) { printf("存储分配失败!"); exit(0); } r1_last = r1->p+r1->length - 1; r2_last = r2->p+r2->length - 1; while(r1->p<=r1_last && r2->p<=r2_last) //归并 { if(*(r1->p)<*(r2->p)) *(r3->p)++ = *(r1->p)++; else *(r3->p)++ = *(r2->p)++; } while(r1->p<=r1_last) //insert the rest of element of r1 *(r3->p++) = *r1->p++; while(r2->p<=r2_last) //insert the rest of element of r1 *(r3->p++) = *r2->p++; }*/ void outputSqList(SqList r) { int i; for(i=0;i<r->length;i++,r->p++) printf("%d",*r->p); } void destroyList(SqList r) { free(r->p); } //此例子只能输入2个有序递增的元素 int main() { SqList r1,r2,r3; int n = 4; // size printf("创建第一个线性表:\n"); creatSqList(r1,n); //n是线性顺序表的长度 outputSqList(r1); printf("创建第二个线性表:\n"); //creatSqList(r2,n); //n是线性顺序表的长度 //uniteSqList(r1,r2,r3); outputSqList(r1); printf("\n"); //outputSqList(r2); printf("\n"); //outputSqList(r3); printf("\n"); //destroyList(r1); //destroyList(r2); //destroyList(r3); system("pause"); return 0; } // 是不是 malloc 只能一次分配连续的内存, 多次分配就乱了地址呢? 有什么好的方法解决吗
搜索更多相关主题的帖子: 内存 
2005-09-07 13:09
快速回复:[求助]内存分配的问题
数据加载中...
 
   



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

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