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

Почему sizeof массива char равно 4? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать массив указателей с возможностью удаления любого элемента http://www.cyberforum.ru/cpp-beginners/thread1214813.html
Привет, друзья! Мне в одной программе нужно было создать массив указателей с возможностью удаления любого элемента, сделал с помощью vector. Схематично делал примерно так: vector<Base*>arr; Base* a = new Base; arr.push_back(a); a = new Base; arr.push_back(a); a = new Base; arr.push_back(a); ...
C++ Из двух стеков равной длины создать один стек, не удаляя исходные стеки (создавать копии элементов) Помогите переделать код под новое условие Старое условие: Из двух стеков равной длины создать один стек, не удаляя исходные стеки (создавать копии элементов). При создании нового стека элементы брать по-очереди по одному элементу из каждого стека. #include <windows.h> // SetConsoleOutputCP, SetConsoleCP #include <stdio.h> //printf , fgets #include <conio.h> // getch #include... http://www.cyberforum.ru/cpp-beginners/thread1214800.html
Приведение к void C++
Доброй ночи! Просматривая код некоторой программы, обнаружил конструкцию следующего вида: void function(char a, char *p) { (void) a; (void) p; } Что это значит? Никогда до этого момента такого не видел.
C++ Двумерный массив. Где ошибка?
Дана действительная квадратная матрица порядка N (N – нечетное), заполненная случайными числами, все элементы различны. Найти наибольший элемент среди стоящих на главной диагонали и поменять его местами с элементом, стоящим на пересечении этих диагоналей. # include <iostream> using namespace std; int main () { const int r=5,/*строки*/ c=5;//элементов в одной строке (столбцы) int mas ...
C++ Как в двумерном массиве найти число находящееся на пересечении двух диагоналей? http://www.cyberforum.ru/cpp-beginners/thread1214770.html
Помогите, пожалуйста! Нужно решить задачу: Дана действительная квадратная матрица порядка N (N – нечетное), заполненная случайными числами, все элементы различны. Найти наибольший элемент среди стоящих на главной диагонали и поменять его местами с элементом, стоящим на пересечении этих диагоналей. Встала проблема найти и запомнить число которое находиться на пересечении двух диагоналей!!!!...
C++ Итерационные алгоритмы Помогите пожалуйста с заданием нужно решить на основе реккурентных отношений подробнее

Показать сообщение отдельно
intern
 Аватар для intern
15 / 15 / 6
Регистрация: 30.03.2014
Сообщений: 67
Завершенные тесты: 1
23.06.2014, 05:42     Почему sizeof массива char равно 4?
Почему sizeof ch3 равно 4?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstring>
 
int main()
{
    char ch1[] = "Cpp";
    char ch2[] = {'C', '+', '+', '\0'};
 
    std::cout << "ch1\t" << sizeof ch1 << "\t" << ch1 << std::endl;
    std::cout << "ch2\t" << sizeof ch2 << "\t" << ch2 << std::endl << std::endl;
 
    int len = strlen(ch1)+strlen(ch2)+1;
    char *ch3 = new char(len);
    for (int i=0; i!=len; ++i) ch3[i]='\0';
 
    strcat (ch3, ch1);
    strcat (ch3, ch2);
    std::cout << "ch3\t" << sizeof ch3 << "\t" << ch3 << std::endl;
 
    delete ch3;
 
    return 0;
}
Результат выполнения:
Код
ch1     4       Cpp
ch2     4       C++

ch3     4       CppC++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru