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

Как выделяется память под массив string? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтения файла в динамический массив http://www.cyberforum.ru/cpp-beginners/thread650065.html
Добрый день. Файл состоит из 6 столбцов и миллионов рядков. Нужно прочесть все это в динамический массив, проблема заключается в том что файл весит очень много(больше 3 гб). Как можно осуществить подобное?
C++ Скопировать двумерный массив в vector Добрый день всем. подскажите пожалуйста, как скопировать двумерный массив в vector? int i = {0}; vector<vector<int> > _v; _v = i; // Не работает. Есть идеи? весь день колупаюсь. и copy делаю и всё что угодно, в итоге одни ошибки компилятора. Помогите плиз. http://www.cyberforum.ru/cpp-beginners/thread650029.html
Защита const C++
const Int& operator= (const Int& a) Отчего защищает первый const
C++ Определить, попадает ли точка с заданными координатами в область
Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную из рисунка серым цветом. Результат работы программы вывести в виде текстового со-общения. Параметр R вводится с клавиатуры
C++ Перписать из Си++ в ява http://www.cyberforum.ru/cpp-beginners/thread649907.html
Добрый день, помогите, пожайлуйста, переписать программу на ява. И, если не сложно, объясните в чем там ключевые различия. Заранее благодарен:) #include <iostream> #include <windows.h> using std::cout; using std::endl; using std::cin; inline char *rus( char *s ) // русский текст в консоли { char *t = new char; CharToOem(s,t);
C++ Найти обратную матрицу Здравствуйте, уважаемые программисты! Прощу помощи. Для заданной матрицы A(3,3), найти обратную А в -1 степени. Нужно ли самому в код вписывать свои значения матрицы? #include <iostream.h> #define I 3 #define J 3 main () подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
11.09.2012, 17:30     Как выделяется память под массив string?
На сколько я понял ТС не про это спрашивал. Вопрос был про new std::string[10], типа откуда компилятор знает, сколько памяти выделять, ведь строки могут быть разных размеров.
Так вот, размер строки не имеет значения, потому как размер объекта std::string - величина постоянная (не надо путать размер объекта и размер строки).
Для примера
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main ()
{
    std::string str1 = "a";
    std::string str2 = "aklsdjfaklsjfdkas;fjak;lsdfjaks jfasdfj jidf joaijf klj  \
        asdkfj ajf aij fwoijowij oijf oiajefwiojf anvj knvv aoijf \
        asdfhjkashdf ajfasjf ksa;jf asodfjioasdjfiopadfjasdjfklasd;jf;asl \
        asjdfhjkaslhfdkasdljf qwjer iojfoiawjfksald;jf sakdl;jf jsaifjw[oej";
 
    std::cout << "sizeof(str1) = " << sizeof(str1) << std::endl 
              << "sizeof(str2) = " << sizeof(str2) << std::endl
              << "sizeof(std::string) = " <<  sizeof(std::string) <<  std::endl;
 
    return 0;
}
вот вывод одного из компиляторов (думаю, это компиляторозависимая величина, хотя можно в стандарт заглянуть):
Код
sizeof(str1) = 32
sizeof(str2) = 32
sizeof(std::string) = 32
 
Текущее время: 21:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru