Не очень понимаю как реализовать дин.массив на CPP. Нужно что-то похожей на это :
a = []
n = int(input('Количество элементов'))
for i in range(n):
a.append(int(input()))
#include <iostream>
using namespace std;
void main()
{
int *a, N;
cout << "Input N = ";
cin >> N;
a = new int[N];
for(int i=0; i<N; i++)
{
cout << "Input a[" << i << "] = ";
cin >> a[i];
}
//.... действия с а
delete a;
}
1)) new/delete Почти как в си malloc/free.
2)) В C++ это делается так:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
int N;
cout << "Input N = ";
cin >> N;
v.resize(N);
for(int i=0; i<N; i++)
{
cout << "Input a[" << i << "] = ";
cin >> v[i];
}
}
new/delete(malloc/realloc/free) лучше не использовать. Обычно от этого больше проблем чем пользы.
3)) Ещё есть такое:
#include <iostream>
using namespace std;
int main()
{
int N;
cout << "Input N = ";
cin >> N;
int v[N];
for(int i=0; i<N; i++)
{
cout << "Input a[" << i << "] = ";
cin >> v[i];
}
}
В MSVC через _alloca В каждом из 3 вариантов есть свои минусы:
Запросто можно получить memory leak, segmentation fault
Работает довольно долго в Debug, сложный шаблонный класс.
Запросто можно получить segmentation fault, stack owerflow
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Прекрасно компилируется в codeblocks а в Visual studio выдает
На фото есть кривая, которая в общем случае через каждые Δx состоит из двух точек (в реальности это координаты двух рядом проложенных проводов)
Какие преимущества дает использование 64-bit кода и 32-bit данных?
Вот такой кодПри выполнении ввожу: 5, (1,2,3,4,5), 5 (6,7,8,9,10), получаю -858993460 -858993460 -858993460 -858993460 -858993460 1 2 3 4 5