yleiou 2005年03月17日
动态数组的长度有限制吗 请教
在写的动态数组生成时 为何当长度大于32000的时候就会出现问题 指针并没有按照要求的长度分配 为何呢 请教 代码如下:

#include <stdlib.h>
#include <dos.h>
#include <bios.h>
#include <alloc.h>

main()
{
int *p,TempValue;
long i,j,k,count,evaluate;
struct time StartTime,EndTime;

scanf("%ld",&i);

printf("memory:%ld\n",coreleft());
p=(int*)malloc(i*(sizeof(int)));
printf("memory:%ld\n",coreleft());
if (p==NULL)
{
printf("Error!\n");
exit(0);
}
else
{
for(j=0;j<i;j++)
{
/*randomvalue=random(i);*/
p[j]=random(i);
/*(p++)=random(i);*/
}
}

for(j=0;j<i;j++)
printf("%ld:%d\n",j,p[j]);

printf("Start Sort\n");
count=evaluate=0;

gettime(&StartTime);
for(j=0;j<i;j++)
{
TempValue=p[j];
evaluate++;
k=j-1;
while((k>=0)&&(p[k]>TempValue))
{
p[k+1]=p[k];
k=k-1;
count++;
evaluate++;
}
p[k+1]=TempValue;
evaluate++;
}

gettime(&EndTime);

for(j=0;j<i;j++)
printf("%ld:%d\n",j,p[j]);
printf("\nStartTime: %d:%d:%d.%d\n",StartTime.ti_hour,StartTime.ti_min,
StartTime.ti_sec,StartTime.ti_hund);
printf("EndTime: %d:%d:%d.%d\n",EndTime.ti_hour,EndTime.ti_min,
EndTime.ti_sec,EndTime.ti_hund);
free(p);
printf("Count Number:%ld\n",count);
printf("Evaluate Number:%ld\n",evaluate);
}
...全文
189 点赞 收藏 9
写回复
9 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告