С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/74: Рейтинг темы: голосов - 74, средняя оценка - 4.70
15 / 15 / 3
Регистрация: 24.09.2010
Сообщений: 45

Функции создания массива и удаления эл-та из массива

15.10.2010, 21:47. Показов 15476. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот нужно написать к двум функциям (на Си) .h и .c файлы :
1. создания массива
2. удаление элемента из массива

Помогите пожалуйста, что-то я не очень представлю как это сделать, не откахжусь от указаний и наставлений.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.10.2010, 21:47
Ответы с готовыми решениями:

Написать функции добавления и удаления произвольного элемента динамического массива
Несмотря на вроде бы распространенность задачи нигде не могу найти простое и универсальное решение, без векторов в дополнительных функций....

Предусмотреть публичные методы добавления в конец массива, извлечения и удаления из массива по индексу
Помогите пожалуйста! Написать класс динамического массива (массив, который может изменять свой размер в зависимости от количества...

Написать функции нахождения и удаления максимального элемента массива
delete

9
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
15.10.2010, 23:50
может нужна функция заполнения массива, а не создания???
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
15.10.2010, 23:52
Цитата Сообщение от OMAAGAAD Посмотреть сообщение
1. создания массива
C
1
2
3
4
5
6
7
8
9
10
11
// *.h
int* CreateArray(size_t size);
 
// *.c
int* CreateArray(size_t size) {
  int* result = malloc(sizeof(int) * size);
  
  memset(result, 0, sizeof(int) * size);
  
  return result;
}
0
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
16.10.2010, 00:12
CyBOSSeR, и что дальше?

int Arr = CreateArray(10); ??????
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
16.10.2010, 00:20
NikolaWhite,
C
1
2
3
4
5
int* arr = CreateArray(10);
 
// Работаем с массивом arr
 
free(arr);
В чем, собственно, проблема?
0
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
16.10.2010, 01:05
В чем, собственно, проблема?
Вы сами то пробовали запускать???

1>c:\users\пользователь\documents\visua l studio 2008\projects\test\test\test.cpp(4) : error C2440: 'initializing' : cannot convert from 'void *' to 'int *'
1> Conversion from 'void*' to pointer to non-'void' requires an explicit cast
1>c:\users\пользователь\documents\visua l studio 2008\projects\test\test\test.cpp(6) : error C3861: 'memset': identifier not found
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.10.2010, 01:18
NikolaWhite,
C++
1
2
memset - #include <cstring>.
  int* result = (int*)malloc(sizeof(int) * size);
Пробуй.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
16.10.2010, 11:23
Цитата Сообщение от NikolaWhite Посмотреть сообщение
Вы сами то пробовали запускать???
Нет.
Цитата Сообщение от NikolaWhite Посмотреть сообщение
1>c:\users\пользователь\documents\visua l studio 2008\projects\test\test\test.cpp(6) : error C3861: 'memset': identifier not found
Добавить заголовочный файл указанный Lavroff'ым
Цитата Сообщение от NikolaWhite Посмотреть сообщение
1>c:\users\пользователь\documents\visua l studio 2008\projects\test\test\test.cpp(4) : error C2440: 'initializing' : cannot convert from 'void *' to 'int *'
1> Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Ах да, приведение забыл:
C
1
int* result = (int*)malloc(sizeof(int) * size);
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
16.10.2010, 12:32
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
// *.h
int* CreateArray(size_t size);
 
// *.c
int* CreateArray(size_t size) {
  int* result = malloc(sizeof(int) * size);
  
  memset(result, 0, sizeof(int) * size);
  
  return result;
}
C
1
#define CREATE_INT_ARRAY(size) calloc(size, sizeof(int))


И кстати в С указатель на void сам приводится к указателю на другой тип. Вот в С++ уже не пройдёт...

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
    
#define CREATE_INT_ARRAY(size) calloc(size, sizeof(int))
 
int main(void){
    int * arr;
    size_t i, size = 5;
    
    if ( ( arr = CREATE_INT_ARRAY(size) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(1);
    }
    
    for ( i = 0; i < size; ++i )
        printf("%d ", arr[i]);
 
    free(arr);
    return 0;
}
1
16.10.2010, 12:59

Не по теме:

Цитата Сообщение от easybudda Посмотреть сообщение
И кстати в С указатель на void сам приводится к указателю на другой тип
Точно, а я еще думал почему ругается на отсутствие явного приведения. Видимо NikolaWhite компилировал исходник как C++'ый.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.10.2010, 12:59
Помогаю со студенческими работами здесь

Массив: Реализовать функции клонирования и удаления двухмерного массива
Всем привет, у меня есть 2 вопроса по двухмерным массивам. Пишу программу в которой есть 2 ф-ции клонировать и удалить, с одномерными...

Написать функции создания массива, сортировки и вывода. Ошибка Incompatible type conversion
Доброе утро) Подскажите пожалуйста в чем ошибка. Задача: Создать массив n*m (ввод пользователем). Написать функции создания массива,...

Разработать программу для создания нового массива, содержащего повторяющиеся элементы исходного массива
Есть псевдокод. Возможно он не правильный ( я же состовлял.) Помогите сделать программу на паскале ( Не хватает знаний. Помогите...

Метод-член класса для создания одномерного массива из отрицательных элементов двумерного динамического массива
Помогите, пожалуйста, нужно разработать метод-член класса для создания одномерного массива из отрицательных элементов двумерного...

Разработать алгоритм создания нового массива , куда помещаются разности соседних четных элементов массива
Задан целочисленный массив с N элементами. Разработать алгоритм создания нового массива , куда помещаются разности соседних четных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru