Struct в функции

Тема в разделе "Общие вопросы по С и С++", создана пользователем Folderx, 7 май 2007.

  1. Folderx

    Folderx Гость

    Код (Text):
    #include <stdio.h>

    int func();

    int main()
    {

    struct test { int a; } s1;
    s1.a = 1;
    printf("%d\n", s1.a);

    struct test *s2;
    s2 = &s1;
    s2->a = 2;
    printf("%d\n", s1.a);

    printf("%d\n", func(&s1));

    return 0;

    }

    int func(s3)
    struct test *s3;
    {
    printf("%d\n", (*s3).a ); //в этой строке
    return 0;
    }
    Выдаёт ошибку в функции func
    error: dereferencing pointer to incomplete type

    Причём если через s2 менять значение в главной программе, всё правильно выводится, а если в функции - не работает.
     
  2. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Описание структуры у тебя локальное, в функции. И использоваться она может только в этой функции, видимо.
     
  3. Folderx

    Folderx Гость

    Точно функция не видела слово test

    вынес строчку за пределы main
    struct test { int a; };

    в main написал вместо неё
    struct test s1;

    Прога заработала, спасибо, grigsoft.
     
  4. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-Folderx+7:05:2007, 08:21 -->
    <span class="vbquote">(Folderx @ 7:05:2007, 08:21 )</span><!--QuoteEBegin-->в main написал вместо неё
    struct test s1;
    [snapback]64982" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Нужно test s1;
     
  5. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Для: European
    Фиг тебе, ты ж на код посмотри - это олд-скульный чистый С :(
     
  6. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-grigsoft+7:05:2007, 13:17 -->
    <span class="vbquote">(grigsoft @ 7:05:2007, 13:17 )</span><!--QuoteEBegin-->Фиг тебе, ты ж на код посмотри - это олд-скульный чистый С
    [snapback]65047" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Хм-м, не знал, не знал...
     
  7. Folderx

    Folderx Гость

    <!--QuoteBegin-"European"+-->
    <span class="vbquote">("European")</span><!--QuoteEBegin-->Нужно test s1;[/quote]
    Не, в С надо полностью писать, это в С++ можно сразу.
     
Загрузка...
Похожие Темы - Struct функции
  1. morpheus
    Ответов:
    0
    Просмотров:
    3.469
  2. Генералл
    Ответов:
    2
    Просмотров:
    52
  3. rn3rjd
    Ответов:
    0
    Просмотров:
    439
  4. Sanchezz86
    Ответов:
    1
    Просмотров:
    583
  5. Sentim
    Ответов:
    1
    Просмотров:
    625

Поделиться этой страницей