Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/20: Рейтинг темы: голосов - 20, средняя оценка - 4.60
8 / 7 / 3
Регистрация: 03.01.2009
Сообщений: 70

Во время компиляции этой программы выдается ошибка сегментирования

22.12.2010, 15:29. Показов 4502. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Вот эта программа работает нормально.
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
    {
         
        char c;
        char *str[10];
        int i;
        
        //открываем файлы
        FILE *sh;
        sh=fopen("shtuk.txt","rt");
        
        fscanf(sh,"%c",&c);
        i=0;
        while(c!=':')
        {
            str[i]=&c;
            printf("%c",*str[i]); i++;
            fscanf(sh,"%c",&c);
        };
        
        
        fclose(sh);
        return 0;
    }
А во время компиляции этой программы выдается ошибка сегментирования.
Здесь, если не использовать функцию moika() (строка 45), то она тоже работает. Значит ошибка в этой функции. С другой стороны, код который я написал выше абсолютно идентичен функции moika() и работает. Помогите разобраться.

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
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/shm.h>
#include <sys/ipc.h>
#include <string.h>
#include <errno.h>
void moika();
int main(int argc, char *argv[],char *envp[])
{
    int *plate;       //разделяемая память
    int shmid;        //IPC дескриптор для разделяемой памяти
    key_t key;        //IPC ключ
    char path[]="time.txt";  //имя файла для генерации ключа
    char string[5];   //строка, содержащая число N
    int i=0;          //просто счётчик 
    int n;            //вместимость стола 
    
    if(argc!=2) { printf("We need more information."); exit(-1);};
    
    //получаем число N - вместимость стола
    char *j=argv[1];
    
    //записываем число в string
    while( *j!='\0' )
    {
        string[i]=*j;
        j++; i++; 
    };
    
    //преобразуем строку в тип integer
    n=atoi(string);   
    printf("%d",n);
    //генерируем ключ 
    if( (key=ftok(path,0))<0 ) { printf("\n Can't generate key."); exit(-1);};
    
    //получаем дескриптор
    if( (shmid=shmget(key,10*sizeof(int),0666 /*| IPC_CREAT | IPC_EXCL*/))<0 ) 
        { printf("\n Can't create shared memory.\n"); exit(-1);};
        
    if( (plate=shmat(shmid,NULL,0))<0 ) { printf("\n Can't attach shared memory.\n"); exit(-1);};
    
    plate[0]=n;//первый элемент массива указыает на количество свободного места на столе
 printf("%d",n);
    moika();
        return 0;
}   
    
    void moika()
    {
         
        char c;
        char str_shtuk[5];
        char str_type[5];
        char *str[10];
        int i;
        int shtuk=0,type;
        int buf;
        //открываем файлы
        FILE *sh;
        sh=fopen("shtuk.txt","rt");
   
        fscanf(sh,"%c",&c);
        i=0;
        while(c!=':')
        {
            str[i]=&c;
            i+=1;
            fscanf(sh,"%c",&c);
        };
        printf("%c",c);
    };
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2010, 15:29
Ответы с готовыми решениями:

При компиляции программы выдается ошибка
&quot;Сan't locate file: windows.inc&quot; что это значит? и как исправить???? (компилятор TASM 5.0) Добавлено через 2 часа 1 минуту 43 секунды ...

Ошибка сегментирования при компиляции
Когда компилирую через g++ компилируется, при запуске выдает ошибку сегментирования, а при компиляции через NetBeans IDE выдает две ошибки,...

При компиляции выдается ошибка
import java.lang.String; import java.util.Scanner; class Building{ String quality; String speed; public...

22
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
22.12.2010, 17:36
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Rasul Посмотреть сообщение
Ввел whereis gdb
gdb: /usr/share/gdb
Судя по всему, это директория, а отладчик у тебя не установлен. Попробуй просто запустить в консоли gdb (т.е. прописать в консоли gdb)
Цитата Сообщение от Rasul Посмотреть сообщение
Только я не понимаю, а как ими пользоваться?
Ну это уже совсем грустно... Наиболее простой и результативный способ понять -> to rtfm
1
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
22.12.2010, 17:37
навскидку
C
1
2
3
4
5
6
   char line[256];  
   if((f = fopen("file",  "r"))  == NULL) return 1; 
   fgets(line, 256, f); 
   char *c = strchr(line, ':'); 
   if(c != NULL) *c = '\0'; 
   printf("%s\n", line);
1
8 / 7 / 3
Регистрация: 03.01.2009
Сообщений: 70
22.12.2010, 17:55  [ТС]
Всем спасибо, вроде разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2010, 17:55

Подскажите почему выдается ошибка компиляции
#include &lt;iostream&gt; using namespace std; int main() { cout &lt;&lt; &quot;Hello there.\n&quot;; cout &lt;&lt; &quot;Here is 5: &quot; &lt;&lt; 5 &lt;&lt; &quot;\n&quot;; cout...

При компиляции выдается ошибка [Error] 'randomize' was not declared in this scope
Доброго времени суток. Есть код написанный на Си, но при компиляции в DevC++ выдает ошибку 'randomize' was not declared in this scope ...

Нашел исходник примера двусвязанного списка, вроде рабочий, но при компиляции выдается ошибка...
Друзья, нашел исходник примера двусвязанного списка, вроде рабочий, но при компиляции выдается ошибка. Я чет, видимо, недопонял и...

Выдается ошибка при компиляции (error C2447: missing function header (old-style formal list?))
не работает программа, выдает ошибку C:\Program Files\Microsoft Visual Studio\MyProjects\564356765456\cfvb n.cpp(6) : error C2447:...

При запуске программы выдается ошибка
Ребят строго не судите ,так как стал вникать в &quot;языки&quot;совсем недавно . З.Ы. если не правильно создал тему ,прошу не тереть ,а перенести...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru