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

Массив символов в структуре - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление элемента массива http://www.cyberforum.ru/cpp-beginners/thread108140.html
Здравствуйте. Необходимо удалить из массива А(20) первый отрицательный элемент,при этом ввод элементов массива необходимо осуществить с клавиатуры. Язык - С.
C++ Найти минимум среди сумм элементов диагонали матрицы, параллельных побочной диагонали Пожалуйста, помогите решить задачку Дана целочисленная прямоугольная матрица. определить: 1) колво строк, не содержащих ни одного четного элемента; 2) минимум среди сумм элементов диагонали, параллельных побочной диагонали. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread108129.html
найти в массиве непрерывный участок из 10 чисел с наибольшим средним значением C++
Проверьте пожалуйста, почему все средние значения (второй массив) одинаковы Задание: найти в массиве непрерывный участок из 10 чисел с наибольшим средним значением #include <iostream.h> #include <conio.h> #include <stdlib.h> const int n=200;
microsoft agent как запустить в C++ C++
дайте пожалуйста исходник , ил просто код как запустить персонажа из microsoft agent на языке С++ Добавлено через 19 часов 3 минуты народ ну попомиге:(
C++ Что за ошибка??? http://www.cyberforum.ru/cpp-beginners/thread108063.html
помогите доделать код #include <iostream> #include <vector> #include <cmath> #include <ctime> #include <algorithm> using namespace std; void out(int n, vector<int> &f1) {
C++ Диаграмма классов Здраствуйте!! Подскажите, пожалуйста, как можно создать диаграмму классов в Visual Studio. Я знаю,что там можно сгенерировать диаграмму по уже написаному коду, но мне нужно сначала создать диаграмму классов, а по ней получить код. Я выполняю такую очередность действий: File->New->Project->Empty Project. Потом из toolbox перетягиваю элемент в рабочую область и создается класс. Проблема в том, что... подробнее

Показать сообщение отдельно
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.03.2010, 04:04     Массив символов в структуре
Цитата Сообщение от stratovarius
А можно ли чтоб количество строк было динамическое, а строка статический массив символов? Если да, то как объявить и выделить память?
а там оно не динамическое ?
ты выделил массив, указал сколько там строк, потом удалил массив и выделил новый, новое количество строк записал туда
таким образом в структуре хранится указатель на динамический массив и текущее количество строк в нём
массив ещё может хранится вообще без количества строк (это выделяется массив указателей на строки и ещё один указатель в конце, куда записывается нулевой указатель, маркер конца массива)
можно сделать переменную, которая хранит количество строк, динамической (для неё будет выделяться память), тогда она будет в виде указателя, а он по размеру часто равен размеру самой переменной

Цитата Сообщение от stratovarius
И ещё одна проблемка: если я записываю допустим в s.charr[2] какую-нить строку, то эта же строка записывается и в s.charr[0], и в s.charr[1], а мне так не надо))
а как ты записываешь ?
надо через strcpy()

C
1
2
3
4
5
6
7
8
    s.charr[0] = (char *) malloc(s.lsize);
    /* выделил память - проверь её на NULL */
 
    ...
 
    strcpy(s.charr[0], "abcd");
 
    strcpy(s.charr[1], "efgh");
вообще через strncpy(), так как у строки есть ограничение, но тогда не забывать ставить нуль-символ

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    s.charr[0] = (char *) malloc(s.lsize);
    /* выделил память - проверь её на NULL */
 
    s.charr[1] = (char *) malloc(s.lsize);
    /* выделил память - проверь её на NULL */
 
    ...
 
    n = strlen("abcd") % s.lsize;
 
    strncpy(s.charr[0], "abcd", n);
 
    s.charr[0][n] = '\0';
 
    n = strlen("efgh") % s.lsize;
 
    strncpy(s.charr[1], "efgh", n);
 
    s.charr[0][n] = '\0';
 
Текущее время: 04:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru