PointCloud *p_pointdata=NULL;
p_pointdata=new PointCloud[point_num]; //根据点数分配内存
当我事先不知道point_num的大小,而想根据后面的具体情况确定p_pointdata里存多少个点,这里该如何定义指针p_pointdata?
【急】不知道数据大小,如何分配内存?
答案:4 悬赏:30 手机版
解决时间 2021-01-26 08:35
- 提问者网友:你给我的爱
- 2021-01-25 17:30
最佳答案
- 五星知识达人网友:躲不过心动
- 2021-01-25 18:09
#include
using namespace std;
template
struct node{
DATA *p_data;
int length;
node(){p_data = NULL;length=0;}
node(int _length){length = _length; p_data = new DATA[_length];}
};
int main(int argc, char *argv[]){
node *nodeA = new node(100);
node *nodeB = new node(500);
return 0;
}
using namespace std;
template
struct node{
DATA *p_data;
int length;
node(){p_data = NULL;length=0;}
node(int _length){length = _length; p_data = new DATA[_length];}
};
int main(int argc, char *argv[]){
node
node
return 0;
}
全部回答
- 1楼网友:雪起风沙痕
- 2021-01-25 21:06
p_pointdata=new PointCloud[point_num];是分配动态内存,是什么时候都可以执行的,因此只需要确定p_pointdata里存多少个点之后再分配。
- 2楼网友:三千妖杀
- 2021-01-25 19:46
加一句啊 ,判断循环,当你输入一个指定的数据时就停止分配内存,比如字符型的
char ch;
while((ch=getchar())!='#')
{
PointCloud *p1,*p2;
p1=p_pointdata;
p2=(PointCloud*)malloc(sizof(PointCloud));
p1->next=p2;
p1=pq->next;
}
最后你的p_pointdata指向的是链表的头部,不就是动态链表啊
- 3楼网友:荒野風
- 2021-01-25 18:32
有以下几个办法:
1 看电脑的内存大小可以打开“我的电脑”单击属性就可以看到,也可以用软件看(如优化大师或电脑自带的诊断软件去看)
2 你电脑运行慢了有以下几点:
(1)内存小了,内存频录底了不能和电脑cpu协调工作
(2)cpu有问题(如高温或高压使cpu不能正常工作)
(3)电脑中病毒
(4)电脑硬件有问题(如内存氧化了等等)
3本人建议你去买本电脑书看看
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯