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

Указатель на следующий элемент структуры - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
D.o.c.t.o.r
4 / 4 / 0
Регистрация: 10.09.2010
Сообщений: 53
12.09.2010, 17:46     Указатель на следующий элемент структуры #1
Как преобразовать строку myArray[0].next = &myArray[1].x; , чтобы она правильно работала? В следующем коде:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#pragma hdrstop
#pragma argsused
#define N 10
 
struct tfll
{
    int x;
    int* prev,next;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    tfll myArray[N];
    myArray[0].x = 10;
        myArray[0].prev = NULL;
    myArray[1].x = 20;
        //Здесь ошибка:
        myArray[0].next = &myArray[1].x;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2010, 17:46     Указатель на следующий элемент структуры
Посмотрите здесь:

Исследование структуры FILE или: что вообще можно выудить из этой структуры, указатель на которую мы получаем при открытии файла? C++
Указатель на Массив Структуры C++
Функция внутри структуры использует указатель, как поле этой структуры C++
C++ Как передвигать указатель на следующий элемент массива структур?
C++ Найти максимальный элемент (из 10 чисел) и следующий за ним максимальный элемент
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.09.2010, 19:21     Указатель на следующий элемент структуры #2
D.o.c.t.o.r,
Не понимаю, если вы создаёте связный список, то к чему здесь вообще массив структур?
Но даже оставив это, скажите, чего вы надеетесь достичь, присвоив указателю на структуру адрес интового числа?
D.o.c.t.o.r
4 / 4 / 0
Регистрация: 10.09.2010
Сообщений: 53
12.09.2010, 19:59  [ТС]     Указатель на следующий элемент структуры #3
Цитата Сообщение от silent_1991 Посмотреть сообщение
D.o.c.t.o.r,
Не понимаю, если вы создаёте связный список, то к чему здесь вообще массив структур?
Но даже оставив это, скажите, чего вы надеетесь достичь, присвоив указателю на структуру адрес интового числа?
А кaк тогдa создaвaть двусвязный список?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.09.2010, 20:23     Указатель на следующий элемент структуры #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
59
60
61
62
63
64
#include <stdio.h>
#include <conio.h>
 
struct numbers
{
    int data;
    struct numbers *next;
    struct numbers *pred;
};
 
void add(struct numbers **last, int data)
{
    struct numbers *new_elem;
    
    new_elem = (struct numbers *)malloc(sizeof(struct numbers));
    new_elem->next = NULL;
    new_elem->data = data;
    new_elem->pred = *last;
    
    if (!*last)
        *last = new_elem;
    else
        (*last)->next = new_elem;
 
    *last = new_elem;
}
 
void print(struct numbers *first)
{
    while (first)
    {
        printf("%d ", first->data);
        first = first->next;
    }
}
 
int main()
{
    struct numbers *first, *last;
    int elem;
    int i;
    
    first = NULL;
    last = NULL;
    
    for (i = 0; i < 5; i++)
    {
        printf("Input element: ");
        scanf("%d", &elem);
        
        if (!first)
        {
            add(&first, elem);
            last = first;
        }
        else
            add(&last, elem);
    }
    
    print(first);
    
    getch();
    return 0;
}
Yandex
Объявления
12.09.2010, 20:23     Указатель на следующий элемент структуры
Ответ Создать тему
Опции темы

Текущее время: 05:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru