Форум программистов, компьютерный форум, киберфорум
Наши страницы

Сосчитать количество строк в символьном массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран. http://www.cyberforum.ru/cpp-beginners/thread20536.html
Сегодняшнее домашнее задание основано именно на этом принципе, однако, вам придется использовать еще и циклы. 1. Пользователь вводит с клавиатуры число - программа должна показать сколько в данном...
C++ Структуры данных и двоичные файлы Доброго времени суток, уважаемые пользователи. Помогите, пожалуйста, с решением задачи: Дан файл file, содержащий сведения о кубиках: длина ребра, цвет, материал. Найти количество кубиков данного... http://www.cyberforum.ru/cpp-beginners/thread20521.html
C++ Измерение скорости копирование данных в оперативной памяти!
Там вроде надо два массива содавать я пробовал ничего не вышло((
Поменять стандартный тип данных C++
Народ, помогите с вопросом. В С++ стандартным типом данных является int. Как поменять это на что-то другое. Например, что бы переменная определенная без типа была char: a = 5; // sizeof(a) == 1
C++ Метод удаления по ключу http://www.cyberforum.ru/cpp-beginners/thread20512.html
ребята помогите пожалуста! нужно что то исправить.. ни как не работает метод удаления по ключу.. у меня условие следующее: нужно удалить все марки новее выбраного возраста.(его вводим с...
C++ Класс множество Нужно написать класс множество с конструкторами, деструкторами, операторами. Так вот возник вопрос...как понимать тип данных множество?? Это обычный массив в котором даннеы не могут повторяться,... подробнее

Показать сообщение отдельно
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
11.01.2009, 06:49
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
 
#include <stdio.h>
#include <stdlib.h>
 
#define MAXLINE  30   /* максимальная длина строки */
#define NLINES   3    /* максимальное количество строк */
 
/* выделяет память под строки и запрашивает для них ввод */
main()
{
    char **s;
    int i;
    
    if ((s = (char **) malloc(NLINES*sizeof(char *))) == NULL)
        return 1;
    for (i = 0; i < NLINES; i++) {
        if ((s[i] = (char *) malloc(MAXLINE*sizeof(char))) == NULL) {
            while (--i >= 0)
                free((void *) s[i]);
            free((void *) s);
            return 2;
        }    
        fgets(s[i], 30, stdin);
    } 
    
    /* gets(s[0]); */ /* раскомментируй и введи строку более 30 символов */
    
    for (i = 0; i < NLINES; i++) {
        printf("%s", s[i]);
        free((void *) s[i]);
    }
    free((void *) s);
    return 0;
}
pavlinux это чо такое

C++
1
    free(*s);
типа всё освобождение памяти ?

gets

Код
[guest@localhost tmp]$ cc test.c -o test
/tmp/ccGTx1aA.o: In function `main':
test.c:(.text+0xcd): warning: the `gets' function is dangerous and should not be used.
то есть в данном случае она стирает не переменные которые идут за строкой а заголовок следующего блока, а если это будет просто массив как раз за ним переменные и вызовы функций точно так же будут перезаписаны

на советуют пишется слитно
насчёт (*s)[i] мне показалось что он память правильно выделяет

Добавлено через 8 минут 29 секунд
C++
1
2
3
4
    for (i = 0; i < n; i++)
        printf("%s\n", *s++);  
  
    free(*s);
не заметил я прикола, так ты вообще память не освобождаешь
какой указатель она попробует освободить ? ты бы хоть запустил прогу свою
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.