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

Вызов массива в функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сможет ли пешка дойти до края доски http://www.cyberforum.ru/cpp-beginners/thread699916.html
Условие: На шахматном поле в произвольном порядке расставлены черные и белые пешки. Для выбранной пользователем пешки определить, сможет ли она дойти до края доски, если остальные фигуры останутся неподвижными.
C++ В зеркально отображенной матрице найти столбцы, элементы которых образуют убывающую последовательность Помогите написать программу.Задана матрица А(n,n). Зеркально отразить её относительно побочной диагонали. В преобразованной матрице найти столбцы, элементы которых образуют убывающую последовательность. http://www.cyberforum.ru/cpp-beginners/thread699910.html
C++ Построение трапации с 4-мя сторонами
Здравствуйте. Помогите написать программу для построения трапеции с 4-мя сторонами. И сделать возможным вращение построенной трапеции вокруг произвольной с её вершин. Управлять вращением через ScrollBar. Заранее очень благодарен.
C++ Использовать значения двух строк из файла
Добрый день! Столкнулся с задачей интерактивной работы с данными из текстовых файлов (float), в которых одна строка характеризует один объект, до этого момента мне нужно было по очереди эти строки использовать, это делалось так: std::vector<float> db; //объявим вектор под значения из строки файла while(getline(input,line)) //цикл чтения из файла и расчеты в нем { db.reserve(700); ...
C++ проверить программу http://www.cyberforum.ru/cpp-beginners/thread699897.html
Посмотрите я правильно кодирования написал, ибо оно кодирует, но незнаю правильно! #include <iostream.h> #include <conio.h> struct byte{int b1:1,b2:2,b3:3,b4:4,b5:5,b6:6,b7:7,b8:8;}; union bits {char ch;byte cod;}u; void decode (bits);
C++ Когда будет верно условие? маненький вопрос, при каких начениях будет верно условие ((ac^bc)&~(ac|cc))!=0 не могу никак разобраться с этими поразрядными операциями, не пойму описание, примерно такое "если соответствующий бит одного и только одного операнда равен 1" какой соответствующий? что-то не въезжаю, есть 2 числа int 4 и 7 и как получить результат 4^7? вообщем в зависимости от вашего желания, либо объясните... подробнее

Показать сообщение отдельно
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2012, 10:48     Вызов массива в функции
Эти циклы неправильно сделаны:
C++
1
2
3
4
5
6
7
for(int i = 0; i < *kol; i++)
{
   for(int j = 0; j < *kol; j++)
   {
        f >> *(p + (*kol) * i + j);
        cout << "element f = " << *(p + (*kol) * i + j) << endl;
   }
Добавлено через 6 минут
У вас количество чисел в файле равно *kol, а вы собираетесь считать количество равное *kol * *kol. И индексы, по которым помещаются числа, неверно вычисляются.

Добавлено через 9 минут
Если сделать одномерный массив, то:
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
47
48
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
 
const int N = 30;
 
void god (int *kol, int *p)
{
char *oy = new char[1000];
 
ifstream f("lola.txt");
while(!f.eof())
{
    f.getline(oy, 1000,'\n');
    *kol = *kol + 1;
}
 
cout << *kol << endl;
 
delete [] oy;
f.close();
 
f.open("lola.txt");
for(int i = 0; i < *kol; i++)
{
      f >> p[i];
      cout << "element f = " << p[i] << endl;
}
 
f.close();
}
 
int main()
{
    int kol = 0;
    int a[N];
    
    god(&kol, a);
    
    cout << "kol = " << kol << endl;
 
    for(int i = 0; i < kol; i++)
        cout<<"a = " << a[i] << endl;
       
    system("pause");
    return 0;
}
Работать будет, хотя в коде много что не так сделано.

Добавлено через 1 час 53 минуты
Логика кода должна быть такой. В main() cоздали указатель на int. Передали его в функцию god(). Посчитали там количество чисел в файле. Для этого совсем не обязательно создавать динамический массив такого размера. Можно и статический на 10 символов (надеюсь хватит?). После этого, под указатель, переданный в функцию, создаётся динамический массив, размером равный количеству чисел в файле. Читаются туда числа из файла. В main(), работа с этим массивом, идёт через указатель. После работы с массивом, освобождается память под ним.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru