0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 11
|
||||||
1 | ||||||
Скопировать один элемент в другой в рамках такого массива25.08.2013, 01:16. Показов 1974. Ответов 21
Метки нет (Все метки)
скажите, плиз, кто-нибудь, как перекочевать, то бишь, скопировать один элемент в другой в рамках такого массива?
0
|
25.08.2013, 01:16 | |
Ответы с готовыми решениями:
21
Скопировать все элементы массива в другой массив такого же размера Скопировать все элементы массива в другой массив такого же размера Скопировать элементы исходного массива в новые массивы: отрицательные - в один, положительные - в другой Скопировать все элементы в другой массив такого же размера |
Jupiter
|
25.08.2013, 01:21
#2
|
3
|
IGPIGP
|
25.08.2013, 01:46
#3
|
0
|
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 11
|
|
25.08.2013, 01:52 [ТС] | 4 |
0
|
Комп_Оратор)
|
||||||
25.08.2013, 02:28 | 5 | |||||
Ай ду белив ю вил.
Куда ж Вы денетесь.
1
|
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 11
|
|
25.08.2013, 21:38 [ТС] | 6 |
Грейт! Фенк ю вери матч!
Ай хоуп айл кэн дан май таск тунайт
0
|
Комп_Оратор)
|
|
25.08.2013, 21:58 | 7 |
Ю ар вэлкам.
Бивэйр оф чар эррэйз виз ту димэншенз, Ху ноуз эбаут, вотил хэппэнд, бат донт мэншон... Ай шюр, ол хэз бин биинг вэл туморроу, Лэт фар эвэй фром ю би эни сорроу. Гуд лак!
0
|
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 11
|
|||||||||||
27.08.2013, 01:14 [ТС] | 8 | ||||||||||
так я понимаю, что мне и не нужен такого вида массив
0
|
15 / 15 / 7
Регистрация: 27.10.2012
Сообщений: 112
|
|
27.08.2013, 01:30 | 9 |
В этих двух строчках написано одно и тоже. Просто во второй надо будет дополнительно выделять и освобождать память, когда в первой записи ты уже выделил для неё [NAME] элементов.
0
|
Комп_Оратор)
|
||||||
27.08.2013, 02:07 | 10 | |||||
Вот как это можно сделать с динамическим массивом:
1
|
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 11
|
||||||
28.08.2013, 18:13 [ТС] | 11 | |||||
Но неужели нет более простого способа, не прибегая к дополнительным массивам, скопировать [i+1] запись в [i] запись?
ну типа как в обычном массиве
0
|
Комп_Оратор)
|
|
28.08.2013, 18:27 | 12 |
Что-то небыстро дело движется. Чувствуется основательность.
Если длина строк совпадает, то в динамическом массиве можно. Если массив const char, то только долото и молоток помогут. Не пораньтесь.
0
|
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 11
|
||||||||||||||||
28.08.2013, 19:04 [ТС] | 13 | |||||||||||||||
А значит, нужно выделять новую память для [n] элемента в размере памяти [n+1] элемента каждый раз?
0
|
Комп_Оратор)
|
|
28.08.2013, 19:28 | 14 |
Это загадочное заявление. Как и весь вопрос. "А если" тут пример совершенно неверного планирования. Давайте Вы полностью приведёте условие Вашей задачи и код который удалось написать. Предварительно можно почитать о строках в стиле Си. При выделении памяти на стеке перевыделить её не получится. Что касается отличия строки как массива и массива строк как таковых, то они не являются типами детерминированной длины. В этом смысле копирование их элементов отличается от копирования элементов в массивах вроде int Arr[].
Расскажите задачу или вопрос будет висеть долго. Have fun!
0
|
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 11
|
||||||
28.08.2013, 19:42 [ТС] | 15 | |||||
Ок. Итак, заполняется таблица. Но поскольку я застрял, она состоит из одного столбца и определенного количества строк [COUNT]. При помощи switch-case выбирается пункт из меню. Одним из этих пунктов является удаление ненужного нам поля и сдвиг всех нижестоящих элементов вверх.
0
|
Комп_Оратор)
|
|
28.08.2013, 20:09 | 16 |
Зачем? Задано ли количество строк?
Дело в том, что для инициализации двумерного массива, нужно сначала инициализировать одномерный массив. Это массив указателей, которые будут указывать на массивы. В С++ 2-х мерный массив это массив массивов. И тут важно даже не то, что изменять размер первого массива нельзя, (легче создать новый двухмерный), а то что Вы не создали даже такой массив, и пытаетесь инициализировать массив строк name[0][0] = new char[sz+1]; когда массива указателей вроде указателя name[0] = new char*[some_const_int] у Вас нет. А должен быть целый массив таких. Смотрите пример. Там всё есть, но без литературы тут не обойтись. Или почитайте или упростите себе задачу. Но сначала бы понять в чём она состоит. Просто "создаётся таблица" не подходит. Попробуйте сказать, что хотите сделать. Ещё невредно нарисовать как выглядит одномерный массив char*. Но главное, похоже, у Вас трудности с пониманием как выделить память под массив даже int. Как одномерный так и двухмерный. Советую позаниматься этим. К char* приступайте только когда тема указателей и массивов на int будет от зубов отскакивать.
1
|
Комп_Оратор)
|
|
28.08.2013, 21:00 | 18 |
Хорошо, что Вы понимаете, что нужно сделать. Мне и правду непонятно.
Нужно ли поведение прямоугольного массива или нужен как раз зубчатый? В чём задача? Зачем смешаны библиотеки ввода-вывода. Может вектор векторов строк string самое то? Непонятно.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
|
|||||||||||||||||||||
28.08.2013, 21:19 | 19 | ||||||||||||||||||||
мне тоже не понятно что нужно ТС
я говорю как бы я сделал например есть строка
в первый (нулевой) элемент массива записываем 0(конец строки)
которая ничего не делает( даже на экран не выводится) но это если только удаление а если вставка то без динамического распределения памяти не обойтись тогда бы я наплевал на массив и работал бы со списком
1
|
Комп_Оратор)
|
||||||
28.08.2013, 21:38 | 20 | |||||
ValeryS, да можно и так.
Если знать максимальный возможный размер например 100 то можно: char buf[100]
0
|
28.08.2013, 21:38 | |
28.08.2013, 21:38 | |
Помогаю со студенческими работами здесь
20
Скопировать все его элементы в другой массив такого же размера Как скопировать все свойства из одного класса в другой класс такого же типа Дан массив. Скопировать все его элементы в другой массив такого же размера Скопировать один файл в другой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |