申请100个连续的int型的空间为什么要等10秒钟左右才能响应

来源:百度知道 编辑:UC知道 时间:2024/05/26 21:40:42
我编了一个很简单的程序,只是申请了100个连续的int型的空间,申请完以后再输出一行字,但是运行程序以后要过10秒左右显示出来那行字,本人用的是Microsoft VC 6.0,电脑是惠普的笔记本,双核,1G内存,代码如下,请问这是怎么回事?以前写过类似的程序不是这样的,只是申请100个连续的空间而已,怎么会那么卡,而且是一开机什么都不做马上运行此程序,所以内存是肯定够申请的,到底是怎么回事呢?也应该不是中病毒了,我装了金山的正版的
#include <iostream>
#define listincrement 10
#define list_init_size 100
using namespace std;
typedef struct sqlist
{
int *r;
int length;
int listsize;
};
int initlist(sqlist &l)
{
l.r=(int *)malloc((l.listsize)*sizeof(int));//申请100个连续的空间
if(!l.r)return (0);
l.length=0;
l.listsize=list_init_size;
return 1;
}

int main()
{
sqlist list;
int i=0,e;
initlist(list);
cout<<"ggg"<<endl;

}

是你写反了
应该先l.listsize=list_init_size;
然后l.r=(int *)malloc((l.listsize)*sizeof(int));//申请100个连续的空间

我这里重要3秒钟。

不过malloc函数输入底层操作,确实很费时间。

我编译了,感觉不出有延时,运行字符串直接就输出了。
我的运行环境是 linux gcc4.3.3
vc 6.0 对C++的标准支持不好,建议用DEV C++ 试试,或者用 VC 。net版本。 如果还是很慢,只能说明你电脑有问题吧。。。

不觉得不伦不类?

都用到了iostream了,也就别用malloc了
至少用new嘛,看起来也舒服些