Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 11

выводит ошибку, но компилирует

06.05.2011, 15:49. Показов 3403. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, скорей всего, я что то напутал с обращением


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#include <stdio.h>
#include <stdlib.h>
 
struct root{
  int name; 
  int i,j; 
  int nl,np; 
  int srubl,srubp;    };
int main(int argc, char *argv[])
{
struct root *M[8][8];
 for(i=0;i<8;i++)
     for(j=0;j<8;j++)
        {           
         (M[i][j])->i=i;
         (M[i][j])->j=j;
        }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2011, 15:49
Ответы с готовыми решениями:

Выводит ошибку в структуре
Создать структуру &quot;мобильный телефон&quot;, состоящую из полей - &quot;Номер абонента&quot;(строка из 7 цифр), &quot;Код провайдера&quot;(трехзначное...

Компилятор выводит ошибку : [Error] stray '\361'
#include &lt;stdio.h&gt; //подключаем библиотеку int main() //начинаем программу { int b,i; //вводим переменные b и i типа интегер ...

Тернарный оператор: Почему выводит ошибку lvalue required?
Данный код не компилируется в c99 : /* -------------------------------------------------------------------------- */ #include...

27
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 11
06.05.2011, 17:03  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от kravam Посмотреть сообщение
Потом будет потом. Да там просто. Объявишь функцию, которая принимает соответствующий указатель, объявишь указатель, инициализируешь его нужным значением- и вуаля- передашь в функцию!

Добавлено через 14 минут
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
#include <stdio.h>
#include <stdlib.h>
 
struct root{
  int name; 
  int i,j; 
  int nl,np; 
  int srubl,srubp;    
};
 
void f (root** p) {
 //Вот твоя функция, делай тут чё хочешь!!!!!!!!!!!!!!!!!!!
 p[4][4].i= 98; 
}
       
 
int main(int argc, char *argv[]){
 
 root** M;
 for (int i= 0; i< 8; i++) 
  M[i]= new root [8];
 
 for(int i=0;i<8;i++)
   for(int j=0;j<8;j++) {           
    (M[i][j]).i=i; 
    (M[i][j]).j=j;
   }
 
 f (M);
 
 printf ("%d\n", M[4][4].i);
 getchar ();
 
 for (int i= 0; i< 8; i++) 
  delete [] M[i];
 
 
}
тут по моему с++ , у меня си компилятор не компелирует на 11 строчке ошибка main.c syntax error before '*' token
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.05.2011, 17:18
Да нет, если чё он бы ругался на new, delete. Вот это действительно C++
В общем, спросишь у ребят потом;

У меня компиляторы gcc и g++, всё компилят
0
 Аватар для Veyron
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
06.05.2011, 17:36
ну во-первых gcc это не компилятор, а коллекция компиляторов. если вызвать компиляцию gcc, то он определит тип языка автоматически по расширению. Например, возьмем ваш код, который вы выложили постом выше и сохраним его под именами code.c и code.cpp. затем скормим gcc.
eugene@eugene-desktop:~/codelite/Coding/Debug$ gcc code.c
code.c:10: error: expected ‘)’ before ‘*’ token
code.c: In function ‘main’:
code.c:14: error: ‘root’ undeclared (first use in this function)
code.c:14: error: (Each undeclared identifier is reported only once
code.c:14: error: for each function it appears in.)
code.c:14: error: ‘M’ undeclared (first use in this function)
code.c:15: error: ‘for’ loop initial declarations are only allowed in C99 mode
code.c:15: note: use option -std=c99 or -std=gnu99 to compile your code
code.c:16: error: ‘new’ undeclared (first use in this function)
code.c:16: error: expected ‘;’ before ‘root’
code.c:17: error: redefinition of ‘i’
code.c:15: note: previous definition of ‘i’ was here
code.c:17: error: ‘for’ loop initial declarations are only allowed in C99 mode
code.c:18: error: ‘for’ loop initial declarations are only allowed in C99 mode
code.c:25: error: redefinition of ‘i’
code.c:17: note: previous definition of ‘i’ was here
code.c:25: error: ‘for’ loop initial declarations are only allowed in C99 mode
code.c:26: error: ‘delete’ undeclared (first use in this function)
code.c:26: error: expected expression before ‘]’ token
а теперь code.cpp:
eugene@eugene-desktop:~/codelite/Coding/Debug$ gcc code.cpp
/tmp/ccXRuNPD.o: In function `main':
code.cpp.text+0x40): undefined reference to `operator new[](unsigned int)'
code.cpp.text+0x13d): undefined reference to `operator delete[](void*)'
/tmp/ccXRuNPD.o.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
Если посмотреть на второй вывод, то тут просто косяки с линковкой. То есть этап компиляции прошел успешно (ваш код на С++ корректен).
Если посмотреть первый вывод, краш произошел на этапе компиляции (ваш код некорректен на Си).
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.05.2011, 18:13
Ну тогда пусть сохраняет файл как *cpp и компилит g++

А если сохранять файл *c, дабы скомпилилось gcc, то опять плохо- чё ему память *loc выделять что ли? Пусть пробует
++++++++++++++++++++++++++++++++++++++++ +++++++++++
И кстати, вопрос, как так, во втором выводе компилятору не попались неизвестные идентификаторы

Bash
1
gcc -c main.cpp
Ошибок не дало. То есть, получается, ему всё известно, но найти он их (ну пусть даже не он, а линковщик) не может. Странно, чё за несоответсвие?
0
 Аватар для Veyron
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
06.05.2011, 19:38
Дык может у ТС задание такое - реализовать все на Си, а мы тут со своим С++
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.05.2011, 21:37
Тогда вот:
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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct root{
  int name; 
  int i,j; 
  int nl,np; 
  int srubl,srubp;    
} root_,  *proot;
 
 
 
void f (proot* p) {
  p[4][4].i= 123; 
}
       
 
int main(){
 
 proot* M;
 int i, j;
 for (i= 0; i< 8; i++) {
  M[i]= (proot)calloc (8, sizeof (root_));
 };
 
 for(i=0;i<8;i++)
   for(j=0;j<8;j++) {           
    (M[i][j]).i=i; 
    (M[i][j]).j=j;
   }
 
 f (M);
 
 printf ("%d\n", M[4][4].i);
 getchar ();
 
 for (i= 0; i< 8; i++) 
  free (M[i]);
 return 0;
}
Компилится gcc main.c

Но это на самом деле тихий ужас; шаг влево- шаг вправо- побег; К примеру
C++
1
sizeof (root)
даёт ошибку. И всё в таком духе.
0
 Аватар для Veyron
107 / 107 / 9
Регистрация: 02.06.2009
Сообщений: 578
06.05.2011, 21:54
kravam, по поводу поста 24. если я правильно понял вопрос, то -с вызывает просто компиляцию, поэтому оно ошибок не выдает. Но создает только объектный модуль. При создании исполняемого файла через gcc почему-то происходит краш. Например:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
//main.cpp
int main()
{
    cout << "HELLO!"<<endl;
    return 0;
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
eugene@eugene-desktop:~/CodeBlocks/ceq$ gcc -c main.cpp
eugene@eugene-desktop:~/CodeBlocks/ceq$ gcc -o run main.o
main.o: In function `main':
main.cpp:(.text+0x14): undefined reference to `std::cout'
main.cpp:(.text+0x19): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
main.cpp:(.text+0x21): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
main.cpp:(.text+0x29): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
main.o: In function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0x51): undefined reference to `std::ios_base::Init::Init()'
main.cpp:(.text+0x56): undefined reference to `std::ios_base::Init::~Init()'
main.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
eugene@eugene-desktop:~/CodeBlocks/ceq$
Причем, через g++ все проходит нормально:
Bash
1
2
3
4
5
eugene@eugene-desktop:~/CodeBlocks/ceq$ g++ -c main.cpp
eugene@eugene-desktop:~/CodeBlocks/ceq$ g++ -o run main.o
eugene@eugene-desktop:~/CodeBlocks/ceq$ ./run
HELLO!
eugene@eugene-desktop:~/CodeBlocks/ceq$
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.05.2011, 21:59
Я понимаю, мне непонятно почему gcc компилятор РАСПОЗНАЛ new и delete, то есть да, это корректные конструкции и всё такое. И тут же линковщик их забраковывает. Вот этот факт меня удивляет. То есть я так понимаю, если некая конструкция известна компилятору, то она и известна, а нет так нет. А тут наполовину известна, наполовину нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2011, 21:59

Компилирует в Dev C++, выдает ошибку в 12 студии
Компилируется в Dev C++, выдает ошибку в 12 студии, в чем дело? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Почему не компилирует слова по русски, а выводит иероглифы какието? что для этого сделать надо?
Почему не компилирует слова по русски, а выводит иероглифы какието? что для этого сделать надо?

Code::Blocks в определенном проекте не компилирует "tr1/shared_ptr.h", при этом в другом проекте компилирует!
Здравствуйте, хотел бы попросить у вас помощи. Пытаюсь написать простой платформер на C++, и в определенный момент мне понадобился...

Выводит ошибку
Type Frac=record{оголошення запису Frac} P:integer; Q:1..32767; var A:array of Drob;{масив векторів} procedure...

Выводит ошибку Next Without For
Подскажите пож. почему первый Next выдает ошибку Next Without For . Пробовала поменять местами next i endif не помогло. Sub zad7() ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru