0
Ниже приведен мой простой фрагмент кода.Объем хранилища переменной длины в c/C++
#include <iostream>
using namespace std;
bool testAllocArray(const unsigned int length)
{
char array[length]; //--------------------------(1)
return true;
}
int main(int argc, char** argv)
{
testAllocArray(1024);
return 0;
}
В заявлении (1) массив, кажется, не выделяется в куче. Я думал, это будет выделено в кучу. Если это выделено в стеке, это не приводит к сбою некоторой частичной длины, поскольку размер стека в значительной степени мал?
Спасибо Stian. Разве это не проблема? Поскольку длина может быть любой величиной вплоть до максимального предела. – Suresh
Если длина является очень большим числом, то стек приложения может переполняться, что приводит к ошибке сегментации или неопределенному поведению в зависимости от процессора и операционной системы. Но большая часть сегодняшней системы, вероятно, может содержать несколько мегабайт памяти в стеке –