Другие языки программирования и технологии
Попытки изучить C++. Нужна подсказка.
Мне нужно задать массив A(m) m
Пример из третьего пункта -- это Си, а не С++.
> x=(int*) malloc(n*sizeof(int)); <--- эта строчка
malloc -- выделение памяти нужного размера
(int *) -- приведение типа к указателю на int
n * sizeof(int) -- n элементов умножить на размер int, получается сколько памяти нужно выделить.
> Wegemu
> cout << "Array size: "; cin >> n;
> int a[n]
Не будет работать в компиляторах от микросовта (Visual C++). Лучше:
int *a = new int[n];
или использовать std::vector
> x=(int*) malloc(n*sizeof(int)); <--- эта строчка
malloc -- выделение памяти нужного размера
(int *) -- приведение типа к указателю на int
n * sizeof(int) -- n элементов умножить на размер int, получается сколько памяти нужно выделить.
> Wegemu
> cout << "Array size: "; cin >> n;
> int a[n]
Не будет работать в компиляторах от микросовта (Visual C++). Лучше:
int *a = new int[n];
или использовать std::vector
Андрей Федоровых
Ваш ответ для Си++, я ошибся, мне нужно для Си.
Андрей Федоровых
Понял, спасибо большое!
iostream.h вообще использовать нельзя. Он лет десять как исключен из стандарта C++ и поддерживается только старыми компиляторами. Вместо него используют iostream с явным указанием стандартного пространства имен std.
А использовать printf из stdio.h или cout из iostream - обычно проще cout, он автоматически разбирается с типами выводимых данных. Но printf позволяет в сложных случаях короче задать сложные форматы вывода и выполняется несколько быстрее.
Учитывая твой предыдущий вопрос, поясню - C++ создавался как развитие С на основе новых принципов программирования - ООП. Поэтому, сохранив старые средства С, он в большинстве случаев ввел параллельно им новые, более высокого уровня и более универсальные. Знать надо и те и другие, а чем ты будешь пользоваться вначале - безразлично, это лишь в каком порядке их учить. Когда ты освоишь и те и другие, будешь выбирать то из них, с которым писать быстрее и короче, а это уже зависит от того, что именно и в каком виде ты собираешься вводить и выводить.
Аналогично, выделение памяти заранее не известного размера в ходе работы программы, делавшееся в С как x=(int*) malloc(n*sizeof(int)); , в C++ делается проще как int *x=new int[n]; , а вообще в C++ есть типы массивов, которые сами позаботятся о выделении себе нужного размера памяти при их объявлении и использовании, для них память специальными операциями выделять не надо.
Впрочем, C тоже не стоит на месте, и в новых версиях C можно использовать и объявление типа int x[n]; , которое в стандарт C++ пока не введено, хотя некоторые компиляторы его поддерживают.
А использовать printf из stdio.h или cout из iostream - обычно проще cout, он автоматически разбирается с типами выводимых данных. Но printf позволяет в сложных случаях короче задать сложные форматы вывода и выполняется несколько быстрее.
Учитывая твой предыдущий вопрос, поясню - C++ создавался как развитие С на основе новых принципов программирования - ООП. Поэтому, сохранив старые средства С, он в большинстве случаев ввел параллельно им новые, более высокого уровня и более универсальные. Знать надо и те и другие, а чем ты будешь пользоваться вначале - безразлично, это лишь в каком порядке их учить. Когда ты освоишь и те и другие, будешь выбирать то из них, с которым писать быстрее и короче, а это уже зависит от того, что именно и в каком виде ты собираешься вводить и выводить.
Аналогично, выделение памяти заранее не известного размера в ходе работы программы, делавшееся в С как x=(int*) malloc(n*sizeof(int)); , в C++ делается проще как int *x=new int[n]; , а вообще в C++ есть типы массивов, которые сами позаботятся о выделении себе нужного размера памяти при их объявлении и использовании, для них память специальными операциями выделять не надо.
Впрочем, C тоже не стоит на месте, и в новых версиях C можно использовать и объявление типа int x[n]; , которое в стандарт C++ пока не введено, хотя некоторые компиляторы его поддерживают.
Андрей Федоровых
Спасибо!
stdio.h - стандартная библиотека ввода-вывода
iostream.h - Красивая обёртка вокруг неё
Что использовать - дело ваше.
sizeof(int) - размер данных типа int в байтах
malloc(...) - Выделить нужное количество памяти и вернуть адрес
iostream.h - Красивая обёртка вокруг неё
Что использовать - дело ваше.
sizeof(int) - размер данных типа int в байтах
malloc(...) - Выделить нужное количество памяти и вернуть адрес
1) Для тебя видимо сложно это будет понять
2) способов сделать массив один и подключаемые файлы к нему не относятся
3) это строчка ващщще не для тех кто с++ первый раз в жизни видит
начни с просмотра книжки с++ для чайников
2) способов сделать массив один и подключаемые файлы к нему не относятся
3) это строчка ващщще не для тех кто с++ первый раз в жизни видит
начни с просмотра книжки с++ для чайников
"#include <stdio.h> Это Си.
---
#include <iostream>
using namespace std;
int main()
{
int a[12];
// или
int n;
cout << "Array size: "; cin >> n;
int a[n]
return 0;
}
---
Вы Си и С++ не путайте. А то набегут труъ прогеры и оторвут вам ручки. :)
> ra
MinGW рулит. :)
---
#include <iostream>
using namespace std;
int main()
{
int a[12];
// или
int n;
cout << "Array size: "; cin >> n;
int a[n]
return 0;
}
---
Вы Си и С++ не путайте. А то набегут труъ прогеры и оторвут вам ручки. :)
> ra
MinGW рулит. :)
Андрей Федоровых
Вот блин, просто работаю в Microsoft Visual C++ 2010. В нем и то и то работает. Вот и запутался.
Спасибо, а как будет выглядеть такой код в Си?
Спасибо, а как будет выглядеть такой код в Си?
Похожие вопросы
- Народ подскажите ! вот решил изучить c++ мож есть какие нибудь сайты или книги по этой теме так чтоб за месяц изучить!
- хочу изучить c++, c# и .net, подскажите, с чего начать
- Программка c# нужна помощь
- Как быстро изучить c++? Чтобы быстро писать программы под Windows. Знаю только Pascal.
- Я в 8-ом классе,хочу после девятого пойти на программиста,т.е изучить c++,pascal,delphi и т д
- Хватит ли 3 месяца изучить C# ну на профи?
- Как мне изучить c++?
- c++ нужна помощь
- (C++) Нужна помощь в создании метода "пузырька".
- C++ Нужна Помощь