首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

动态数组的有关问题

2012-06-12 
动态数组的问题#includeiostream#includestdio.husing namespace std#define MINSIZE 100int main(vo

动态数组的问题
#include<iostream>
#include<stdio.h>
using namespace std;
#define MINSIZE 100

int main(void)
{
int size;
cin >> size;
int str[size];
int i = 0;
for (; i < size; i++)
{
str[i] = i;
printf("str[%d]=[%d]\n", i, str[i]);
}
return 0;
}

这个程序也能编译通过,执行。想请教一下它和动态申请内存有什么不同吗?

[解决办法]
str是个数组,传入数组大小后就是固定大小数组了,在栈中分配内存,new出来在堆中
[解决办法]
这个是可变长度数组,gcc实现的str[size]实在栈上分配的,如果太大会导致栈溢出。所以还似乎不要用的好。还是用传统的new或malloc吧。
[解决办法]
http://blog.csdn.net/hannick/article/details/2119223

热点排行