Я пытаюсь сделать массив с переменным размером в c.Почему массив большой переменной длины имеет фиксированное значение -1, даже если он назначен в C?
Массив продолжает возвращаться как имеющий значение -1.
Что я хочу сделать, это сделать массив размером size
, а затем постепенно добавлять к нему значения. Что я делаю не так?
int size = 4546548;
UInt32 ar[size];
//soundStructArray[audioFile].audioData = (UInt32 *)malloc(sizeof(UInt32) * totalFramesInFile);
//ar=(UInt32 *)malloc(sizeof(UInt32) * totalFramesInFile);
for (int b = 0; b < size; b++)
{
UInt32 l = soundStructArray[audioFile].audioDataLeft[b];
UInt32 r = soundStructArray[audioFile].audioDataRight[b];
UInt32 t = l+r;
ar[b] = t;
}
дубликат http://stackoverflow.com/questions/448844/variable-sized-arrays-in-c – alvin 2010-11-24 17:40:15
Код выглядит нормально, но размер большой. Вы уверены, что ваша программа имеет 18 МБ стека для использования? – 2010-11-24 17:49:44
@Steve. Я смущался о том, сколько элементов я хочу, чтобы мой массив удерживался, и фактический размер. – dubbeat 2010-11-24 17:54:08