24小时热门版块排行榜    

查看: 1697  |  回复: 17

小桥流水1102

新虫 (初入文坛)

引用回帖:
9楼: Originally posted by neweroica at 2016-01-25 22:17:50
你指动态内存分配?...

是的,因为我这里定义的 Max 是一个全局静态数组,当较大时,内存不够。
11楼2016-01-26 09:40:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小桥流水1102

新虫 (初入文坛)

引用回帖:
10楼: Originally posted by fmying at 2016-01-25 23:19:19
-mcmodel定义程序某些部分能获取的空间大小:
-mcmodel=small stack部分(静态数组,全局变量等)只能限制在2GB以内,.text部分也是如此。
-mcmodel=medium stack部分不受限制,.text部分2GB受限
-mcmodel=large ...

是的,您讲的很对。如何 在程序中使用malloc/new等动态分配,请您指导下,谢谢。
12楼2016-01-26 09:42:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fmying

银虫 (小有名气)

【答案】应助回帖

引用回帖:
12楼: Originally posted by 小桥流水1102 at 2016-01-26 09:42:24
是的,您讲的很对。如何 在程序中使用malloc/new等动态分配,请您指导下,谢谢。...

这个要用指针。我对C++不熟,只知道C中的malloc如何使用。比如如下代码:


#include<stdio.h>
#include<stdlib.h>
void main() {
int *p;
int i;
p=malloc(4*sizeof(int));
for (i=0;i<4;i++) {
  *(p+i) = i*10;
  printf("%d ",*(p+i));
}
printf("\n";
free(p);
}

定义一个整形指针*p,然后用malloc将4个整形变量长度的内存分配个这个指针,实际p就指向了一个 int array[4] 的数组,然后我用for循环给数组中每个变量赋值并输出,最后用free函数释放指针p指向的内存,就是这样。
上善若水
13楼2016-01-26 10:37:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fmying

银虫 (小有名气)

引用回帖:
13楼: Originally posted by fmying at 2016-01-26 10:37:56
这个要用指针。我对C++不熟,只知道C中的malloc如何使用。比如如下代码:


#include<stdio.h>
#include<stdlib.h>
void main() {
int *p;
int i;
p=malloc(4*sizeof(int));
for (i=0;i<4 ...

导数第三行应该是:
printf("\n";
上善若水
14楼2016-01-26 10:41:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fmying

银虫 (小有名气)

引用回帖:
14楼: Originally posted by fmying at 2016-01-26 10:41:20
导数第三行应该是:
printf("\n";...

晕,又成表情了……
上善若水
15楼2016-01-26 10:42:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小桥流水1102

新虫 (初入文坛)

引用回帖:
13楼: Originally posted by fmying at 2016-01-26 10:37:56
这个要用指针。我对C++不熟,只知道C中的malloc如何使用。比如如下代码:


#include<stdio.h>
#include<stdlib.h>
void main() {
int *p;
int i;
p=malloc(4*sizeof(int));
for (i=0;i<4 ...

谢谢,定义这种动态数组,是不是较占计算机 内存。
16楼2016-01-26 15:13:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fmying

银虫 (小有名气)

引用回帖:
16楼: Originally posted by 小桥流水1102 at 2016-01-26 15:13:53
谢谢,定义这种动态数组,是不是较占计算机 内存。...

不会。恰恰相反,使用动态数组可以更好更灵活地利用内存完成你自己需要的计算。
因为随着计算体系和要求的不同,内存消耗的关键点是不一样的。因此动态内存才是更好的选择。
从调用速度来说,stack的速度更快一些,但是heap其实也慢不了很多。动态内存的优势远大于其劣势。
不过用好动态内存关键在于对指针的调用有清晰的认识,不然程序会写得更乱。
上善若水
17楼2016-01-26 17:40:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小桥流水1102

新虫 (初入文坛)

引用回帖:
17楼: Originally posted by fmying at 2016-01-26 17:40:04
不会。恰恰相反,使用动态数组可以更好更灵活地利用内存完成你自己需要的计算。
因为随着计算体系和要求的不同,内存消耗的关键点是不一样的。因此动态内存才是更好的选择。
从调用速度来说,stack的速度更快一些 ...

受用了,谢谢。
18楼2016-01-26 20:35:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小桥流水1102 的主题更新
信息提示
请填处理意见