Форум программистов, компьютерный форум CyberForum.ru

Передача всего массива в функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неясности в работе программы http://www.cyberforum.ru/cpp-beginners/thread941275.html
Доброго всем времени суток! :) Уже час пытаюсь понять почему во время исполнения этого кода (в borland, Cи), при вводе цифр ( через scanf) он сначала вводит как положено scanf, но отказывается прекратить работу и посчитать, пока не введешь туда ещё какое-то произвольное число. После чего считает все правильно, и второе число никак не затрагивается. Может кто сталкивался с таким? #include...
C++ Постоение фигуры Есть набор произвольных точек. Как по ним построить триангулированную поверхность? http://www.cyberforum.ru/cpp-beginners/thread941266.html
C++ Вычислить значение функции на интервале
Делаю свою первую лабораторную по С++ по учебнику Задание на прикрепленной картинке. Вот мой код (среда разработки Microsoft Visual C++ 2010 Express) #include "stdafx.h" using namespace std; int _tmain(int argc, _TCHAR* argv) { setlocale(LC_ALL,"Russian");
C++ матрица 4на4 и сортировка
Помогите пожалуйста написать программу в которой будет матрица 4на4 и также сортировка. вот что у меня получилось #include <iostream> #include <cmath> using namespace std; class matr { private: int mas;
C++ Ошбики при подключении библиотеки http://www.cyberforum.ru/cpp-beginners/thread941250.html
Добрый день! При подключении библиотеки выскакивают такие ошибки: 'Function_Get' initialized and declared 'extern' ошибка: definition of 'int Function_Get' is marked 'dllimport' ошибка: 'LPVOID' was not declared in this scope как исправить??
C++ работа с массивом указателей как имея изначально: char *student={}; получить: char *student={"data","data2","data3","data4","data5","data6","data7","data8","data9","data10"}; все data вводить с клавиатуры. то есть сделать ввод с клавиатуры. всех указателей массива student подробнее

Показать сообщение отдельно
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,225

Передача всего массива в функцию - C++

21.08.2013, 15:05. Просмотров 815. Ответов 28
Метки (Все метки)

Начал изучать алгоритмы сортировки и поиска, решил сделать программу для тестирования работы сортировки и поиска на производительность, по времени (по нагрузке на ЦП и ОП пока что мозгов не хватает).
И возникла проблема, вот я из своей программы выделил новую программу, убрав весь лишний код, оставил только то, где происходит косяк:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream> 
using std::cin;
using std::cout;
using std::endl;
 
#include <time.h>
 
#include <windows.h>
 
const int dlina = 1000;
 
 
void One(const int *);
void Two(int *);
 
int main()
{
setlocale(LC_ALL,"");
 
int test[dlina];
 
for (int i = 0; i < dlina; i++ ) 
{ test[i] = (1 + rand() % 1000); } 
 
One(test);
 
system("pause");
return 0;
}
 
 
void One(const int *test1)
{
int temp[dlina];
*temp = *test1;
 
Two(temp);
}
 
 
void Two(int *test2)
{
for (int i = 0; i < dlina; i++ ) 
{ cout << test2[i] << " "; } 
cout << endl;
}


Я знаю что косяк происходит в строчке 37, что в Two передается что то не то, подскажите как сделать что бы передавалось нормально и подскажите почему возникает такой косяк, все в принципе сделано по аналогии с One, если взять код из строчек 43-45 и перенести в функцию One, а Two удалить, то все будет работать.


И еще вопрос, как я понял я в void One передаю ссылку на массив, т.е. если я в void One изменю полученный массив (test1) то у меня изменится и массив test из main, а если мне нужно что бы он не по ссылке передавался, а копировался, как быть?

PS то, что я передаю не по ссылке, а передаю указатель в котором хранится адрес на массив test из main, я в курсе, для простоты я написал что передаю по ссылке.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru