Ошибка в коде программы

200
18 мая 2018, 18:00

Столкнулся с проблемой в коде:

1)error C2057: требуется константное выражение

2)error C2466: невозможно выделить память для массива постоянного нулевого размера 3)error C2133: List: неизвестный размер

Сам код программы:

#include "stdafx.h"
#include "iostream"
#include "stdio.h"
#include "locale"
using namespace std;
struct CPU
{
   string Name;
   float Hz;
   int RAM;
   int SRAM;
   int Price;};
int main()
{
   int count;
   cin>>count;
   CPU List[count];
   for (int i=0;i<count;i++) {
     cout<<"Name ";cin>>List[i].Name;
     cout<<"HZ ";cin>>List[i].Hz;
     cout<<"RAM ";cin>>List[i].RAM;
     cout<<"SRAM ";cin>>List[i].SRAM;
     cout<<"Price ";cin>>List[i].Price;
   }
   system("pause");
}

В чем причина?

Answer 1

Нельзя в C++ объявлять массивы с размером, неизвестным во время компиляции.

Меняйте

CPU List[count];

на

CPU * List = new CPU[count];

и в конце не забудьте добавить

delete[] List;
READ ALSO
класс контейнер стек с++

класс контейнер стек с++

Есть реализация класса контейнера с помощью двумерного массива,помогите пределать под стек,пожалуйста

222
Что делает throw?

Что делает throw?

При выполнение данного кода произошло создание трех объектовЕсли происходит создание одного или двух - я могу понять логику

180
Мусор при сортировке

Мусор при сортировке

После сортировки в массиве NxN появляется мусор, с каждым разом мусор в разных местах

193
Проблема с transform-origin и transform: rotateX в Safari

Проблема с transform-origin и transform: rotateX в Safari

Столкнулся с проблемой, которая заключается в кривом отображении блока с текстом

218