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

Сформировать список, в котором хранится информация о заболеваниях сотрудников - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решение системы уравнений компактным методом исключений http://www.cyberforum.ru/cpp-beginners/thread21957.html
На С++ надо решить систему уравнений компактным методом исключений. Элементы матрицы- комплексные числа, введенные в символьной форме. Числа обязательно должны быть представлены структурой. Ввод идет из файла txt потоками данных (ifstream, ofstream). Кто хоть что-нибудь может сказать по этому поводу, откликнитесь пожалуйста!
C++ Необходимо создать функцию для обработки символьных рядов Потрібно створити функцію для обробки символьних рядків. За зразок брати функцію WordIndex(s,n)(Призначення: визначення позиції початку в рядку s слова з номером n) обробки рядків мови C, але не застосовувати її в своїй функції. Передбачити обробку помилок в параметрів і особливі випадки. Розробити два варіанти заданої функції - використовуючи традиційну обробку масивів і використовуючи адресну... http://www.cyberforum.ru/cpp-beginners/thread21950.html
ввод-вывод текста C++
как с помощью массива можно вводить и выводить текст в Си, если в тексте есть пробелы?
C++ Заменить в строках первое слово на другое
задание такое: задан текст, содержащий произвольное кол-во строк, в которых отдельные слова могут разделяться одним или несколькими пробелами и знаками пунктуации(перенос слов не используется). Сформировать новый текст, который является результатом след. преобразования исходного текста: заменить в строках (содержащих заданное слово) первое слово на другое заданное слово. попыталась написать...
C++ итерация для просмотра бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread21889.html
typedef struct tree{ int data; struct tree *leftPtr, *rightPtr, *parentPtr; }TREE; TREE *rootPtr, *tempPtr, *tmpPtr; void Print( TREE *sPtr )/*Функция печати элементов дерева*/ { if( sPtr->data != -1 ){
C++ максимальный элемент массива Дан массив из 7 целых чисел.Написать программу так ,чтобы она высчитывала максимальный элемент массива. {1,2,4,5,-7,8,21} Максимальный элемент 21. подробнее

Показать сообщение отдельно
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.01.2009, 00:20     Сформировать список, в котором хранится информация о заболеваниях сотрудников
maximus09

Код
rabotnik[0].FIO = (char*)malloc(strlen("Иванов Иван Иванович"));
Код
rabotnik[0].Diagnos = (char*)malloc(strlen("Аппендицит"));
это ошибки, но у Шилдта в книжке по C точно такая же, только в ещё более явном виде

надо так

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>
#include <string.h>
 
/* выделяет память под строку и её нуль-символ */
main()
{
    char *p;
    int len;
    
    len = strlen("Иван");
    printf("%d\n", len);
    
    if ((p = malloc(strlen("Иван")+1)) == NULL)
        return 1;
    free((void *) p);
    return 0;
}
Код
    rabotnik[0].Diagnos = "Аппендицит";
строка записывается в read-only область т.к. это строковой литерал (строковая константа), чтобы занести строку в выделенный блок нужно сделать

Код
    strcpy(rabotnik[0].Diagnos, "Аппендицит");
когда у тебя строковая константа, ты не можешь её менять

т.е. можно сделать
Код
    Sotrudnik rabotnik[100] = { 
        {
            "Иванов Иван Иванович",
            1980,  
            "Аппендицит",  
            23,  
            4,  
            2000,
            12,  
            5,  
            2000
        },

        {
            "Петров Иван Иванович",
            1970,  
            "Аппендицит",  
            23,  
            4,  
            2000,
            12,  
            5,  
            2000
        }
    };
строки будут просто зафиксированы

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