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

Работа с массивом char - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написание звукового движка http://www.cyberforum.ru/cpp-beginners/thread152523.html
Товарищи, приветствую. Сабж. Очень серьёзное дело, требующее не менее серьёзного подхода. С чего начать? Куда копать? В чём отличия интерфейсов DirectSound, waveIn/waveOut и прочих возможных? В планах - создание многотрекового аудио-редактора наподобие Steinberg Cubase/Nuendo, Adobe Audition, Pro Tools и т.п. Какие механизмы используются этими программами? Чем вообще обусловлено различие...
C++ C++ .net ? Скажите может быть C++ вместе с .net ? или это всё отдельно ? http://www.cyberforum.ru/cpp-beginners/thread152513.html
C++ Создать шаблонный класс-контейнер Array, который представляет собой массив
Создать шаблонный класс-контейнер Array, который представляет собой массив, позволяющий хранить объекты заданного типа. Класс должен реализовывать следующие функции: Вот пытаюсь создать класс который представляет собой массив, не могу понять как это сделать... Как в массив записывать данные, как изменять их, как выделять правильно динамическую память... #include<iostream> #include<time.h>...
какой компилятор посоветуете C++
Сел изучать С по книге Б.Керниган и Д.Ритчи "Язык прогр. Си", програмные примеры в книге описаны на Линуксе, что для меня не совсем удобно. Какой компилятор из под винды посоветуете для примеров этой книги.
C++ Центральность графа (переделка с C#) http://www.cyberforum.ru/cpp-beginners/thread152484.html
У меня есть алгоритм, по которому надо найти промежуточную центральность каждой вершины графа (если дана матрица смежности). (стр 10). Я нашел // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.ComponentModel; using System.Collections.Generic; using System.Diagnostics; using Microsoft.NodeXL.Core; namespace Microsoft.NodeXL.ExcelTemplate
C++ В каком заголовочном файле находятся функции Sleep() и delay() и как правильно их использовать? в каком хедере они находятся и как правильно их использовать Добавлено через 1 минуту дядя яндекс ничего не подсказал =( подробнее

Показать сообщение отдельно
Demihalf
Унылый школьник
 Аватар для Demihalf
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
09.07.2010, 15:28     Работа с массивом char
[Freeman], когда используется strcpy, она копирует все символы из source по необходимому адресу (destination). Если мы поступим так:
C
1
2
char* s;
strcpy(s, "Hello, world");
возникнет тот же пресловутый Access violation, так как указатель не инициализирован, он не указывает ни на какую область памяти. То есть, выделяя память под строку, мы получаем указатель на область памяти, которую можем менять:
C
1
2
s = (char*)malloc(sizeof(char) * 256);
strcpy(s, "Hello, world");
На C++:
C++
1
2
char* s = new char[256];
strcpy(s, "Hello, world");
Можно сделать по-другому:
C
1
2
char s[256];
strcpy(s, "Hello, world");
Здесь происходит что-то подобное, только вместо Кучи, строка хранится в стеке.

И вообще, присваивать строковой литерал указателю напрямую нельзя, кроме случая инициализации константы:
C
1
const char* = "Hello, world";
Нужно использовать strcpy или, что желательнее, strncpy, которая позволяет контролировать количество копируемых символов.
 
Текущее время: 18:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru