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

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

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

Показать сообщение отдельно
accept
4821 / 3241 / 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';
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru