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

Что выводит данные програмы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны действительные числа а,b и с. http://www.cyberforum.ru/cpp-beginners/thread27183.html
Даны действительные числа а,b и с. Удвоить эти числа, если a>=b>=c, и заменить их абсолютными значениями, если не так. Добавлено через 5 минут 8 секунд #include <iostream.h> #include <conio.h> #include <math.h> void main () {
C++ Builder Можно ли установить DevExpress-компоненты на Builder 6.0? Помогите плз. Можно ли установить Компоненты VCL на Builder 6.0, и если да, то как это сделать? http://www.cyberforum.ru/cpp-beginners/thread27136.html
C++ Вывести минимальное и максимальное значения в массиве
Написать программу, которая позволяет двухмерный заполнить массив случайным образом значениями в диапазоне от -100 до 100 и выводит минимальное и максимальное значения в этом массиве. Диалог с пользователем реализовать при помощи меню.Если кто-то сталкивался с подобной программой,подскажите как реализовать.Заранее спасибо
Массив,сортировка,файлы. C++
вообщем надо сформировать динамический массив из вещественных чисел(ввод с клавиатуры),сформировать их по убыванию.вывести в двоичный файл все вещественные числа и вывести на экран сумму и среднее арифметическое. Сделаете на Си! Заранее спасибо!
C++ Программа: Итерационные циклы http://www.cyberforum.ru/cpp-beginners/thread27098.html
Подробнее во вложении: Помогите составить программу на С++
C++ Составить программу вычисления значений функций на отрезках Помогите пожалуйста составить программу на языке С++ Составить программу вычисления значиний функций F(x) на отрезке Подробнее во вложении: подробнее

Показать сообщение отдельно
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.03.2009, 22:00     Что выводит данные програмы
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
#include <stdio.h>
 
#define PRINTS(s)  printf("%s\n", (s));
 
main()
{
    struct A {
        int i;
        char *s;
        struct A *p;
    };
    static struct A b[] = {
        { 1, "ABCD", b+3 },
        { 2, "ACB",  b+2 },
        { 3, "PQR",  b+1 },
        { 4, "PRQ",  b   }
    };
    
    struct A *ptr = b;
    
    PRINTS(++(ptr->s));
    PRINTS(b[++(ptr->p->i)+1].s);
    
    return 0;
}
вывод
Код
[guest@station src]$ ./test
BCD
Ошибка сегментирования
[guest@station src]$
пытается получить доступ к 7ой структуре, а там всего 4

если дополнить, то всё ок

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
#include <stdio.h>
 
#define PRINTS(s)  printf("%s\n", (s));
 
main()
{
    struct A {
        int i;
        char *s;
        struct A *p;
    };
    static struct A b[] = {
        { 1, "ABCD", b+3 },
        { 2, "ACB",  b+2 },
        { 3, "PQR",  b+1 },
        { 4, "PRQ",  b   }
        
        , { 0, NULL,  NULL    }
        , { 0, NULL,  NULL    }
        , { 7, "hello",  NULL }
    };
    
    struct A *ptr = b;
    
    PRINTS(++(ptr->s));
    PRINTS(b[++(ptr->p->i)+1].s);
    
    return 0;
}
вывод
Код
[guest@station src]$ ./test
BCD
hello
[guest@station src]$
макрос #define перед сдачей ему не показывай, а то заставит объяснять как ты его составил

Добавлено через 3 минуты 6 секунд
*--*++chpp+3 ответ 00
это из третьего слова, он к нему проходит *--*++chpp, а потом смещается на три символа +3

Добавлено через 3 минуты 20 секунд
p->s делает то же самое, что и (*p).s , но в длинных выражениях компилятор не пропустит множественные разыменования в скобках, поэтому p->next->next->next работает а (*p).(*next).(*next).(*next) нет
 
Текущее время: 14:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru