动态数组的问题
#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