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

Как передать указатель на структуру в функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Лабораторная работа по теме Операторы ветвления. http://www.cyberforum.ru/cpp-beginners/thread667522.html
Люди помогите пожалуйста зделать лабу, по теме Операторы ветвления. F= a(x*x)-b; при x-1<0 и b-x!=0 (x+1)!; при x-1>0 и b+x=0 x/c; в остальных случаях
C++ Найти НОД двух целых чисел Найти НОД двух целых чисел. Помогите пожалуйста) http://www.cyberforum.ru/cpp-beginners/thread667516.html
C++ Определить сумму чисел, которые при деление на n дают в остатке q
С клавиатуры вводятся числа. Окончание ввода – 0. Определить сумму только тех чисел, которые при деление на n дают в остатке q
Использование вектора C++
Здраствуйте. Написал такую программку: #include<vector.h> #include<iterator.h> #include<conio.h> #include<iostream.h> template <typename T> bool palindrome(const vector &a); int main(){
C++ Как определить количество перестановок и сравнений http://www.cyberforum.ru/cpp-beginners/thread667492.html
У меня есть алгоритм Quicksort как определить количество перестановок и сравнений?? #include <iostream> #include <conio.h> #include <time.h> using namespace std; void quickSort(int arr, int left, int right) { int i = left, j = right; int tmp; int pivot = arr; /* partition */
C++ Найти самый короткий путь от точки до точки в матрице Народ, помогите... Такая задача, имеется массив символов(char arr) в котором в рандомных местах установлены препятствия(к примеру символы '*') и имеем 2 точки, нужно найти самый короткий путь от 1й точки ко 2й, двигаться можно только по верикали или горизонтали(двигаться по диагонали нельзя). подробнее

Показать сообщение отдельно
nikphil87
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 180
13.10.2012, 22:55  [ТС]     Как передать указатель на структуру в функцию
Ну вот вроде все попробовал, но не работает. На операторе fprintf выдает ошибку "Access Violation" и в этом месте arr[i].p=NULL, то есть в эту функцию так ничего и не передалось.
Вот текст программы может кто подскажет где собака порылась. В файле один хранятся числа 1,2,3,4,5. Каждое с новой строки.

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
49
50
51
52
53
54
55
56
57
58
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
int j,N;
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
FILE *f1,*f2,*f3;
 
typedef struct
        {
        int p;
        }
        Array;
Array *arr;
//--------------------------------------------------------------------------
void func1()
{
int i;
fprintf(f3,"j=%i\n",j);
for(i=0;i<=j;i++)
fscanf(f1,"%i",&N);                         //размер массива
          Array *arr = new Array[N];
for(i=0;i<N;i++)
fscanf(f1,"%i",&arr[i].p);                 //заполнение массива
}
 
void func2(Array *ptr,int N)
{
int i;
fprintf(f3,"j=%i\n",j);
for(i=0;i<N;i++)
fprintf(f3,"func2->%i\n",arr[i].p);      //вывод на печать, где и происходит остановка программы
 
}
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
j=0;
f1 = fopen ("1.txt","r");
f3 = fopen("3.txt","a");
        while(j<3)
        {
        func1();
        func2(arr,N);
        j++;}
fclose(f1);
fclose(f3);
}
 
Текущее время: 12:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru