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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.68
OMAAGAAD
15 / 15 / 3
Регистрация: 24.09.2010
Сообщений: 45
15.10.2010, 21:47     Функции создания массива и удаления эл-та из массива #1
Вот нужно написать к двум функциям (на Си) .h и .c файлы :
1. создания массива
2. удаление элемента из массива

Помогите пожалуйста, что-то я не очень представлю как это сделать, не откахжусь от указаний и наставлений.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2010, 21:47     Функции создания массива и удаления эл-та из массива
Посмотрите здесь:

C++ Удаления елементов из массива
Сразу три 1.анализ функции, 2.замена элементов массива, 3.максимальный элемент массива C++
C++ Функции обработки массива (определить произведение элементов массива, заменить модулем все элементы массива, уничтожить элемент с заданным значением)
C++ Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив)
Функции двумерного массива. Транспонировать матрицу через ввод вывод функции двумерного массива. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
15.10.2010, 23:50     Функции создания массива и удаления эл-та из массива #2
может нужна функция заполнения массива, а не создания???
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.10.2010, 23:52     Функции создания массива и удаления эл-та из массива #3
Цитата Сообщение от 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;
}
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
16.10.2010, 00:12     Функции создания массива и удаления эл-та из массива #4
CyBOSSeR, и что дальше?

int Arr = CreateArray(10); ??????
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
16.10.2010, 00:20     Функции создания массива и удаления эл-та из массива #5
NikolaWhite,
C
1
2
3
4
5
int* arr = CreateArray(10);
 
// Работаем с массивом arr
 
free(arr);
В чем, собственно, проблема?
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
16.10.2010, 01:05     Функции создания массива и удаления эл-та из массива #6
В чем, собственно, проблема?
Вы сами то пробовали запускать???

1>c:\users\пользователь\documents\visual 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\visual studio 2008\projects\test\test\test.cpp(6) : error C3861: 'memset': identifier not found
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.10.2010, 01:18     Функции создания массива и удаления эл-та из массива #7
NikolaWhite,
C++
1
2
memset - #include <cstring>.
  int* result = (int*)malloc(sizeof(int) * size);
Пробуй.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
16.10.2010, 11:23     Функции создания массива и удаления эл-та из массива #8
Цитата Сообщение от NikolaWhite Посмотреть сообщение
Вы сами то пробовали запускать???
Нет.
Цитата Сообщение от NikolaWhite Посмотреть сообщение
1>c:\users\пользователь\documents\visual studio 2008\projects\test\test\test.cpp(6) : error C3861: 'memset': identifier not found
Добавить заголовочный файл указанный Lavroff'ым
Цитата Сообщение от NikolaWhite Посмотреть сообщение
1>c:\users\пользователь\documents\visual 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);
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.10.2010, 12:32     Функции создания массива и удаления эл-та из массива #9
Цитата Сообщение от 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;
}
Функции создания массива и удаления эл-та из массива
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2010, 12:59     Функции создания массива и удаления эл-та из массива
Еще ссылки по теме:

C++ Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции?
C++ Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции
Написать функции создания массива, сортировки и вывода. Ошибка Incompatible type conversion C++

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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
16.10.2010, 12:59     Функции создания массива и удаления эл-та из массива
  #10

Не по теме:

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

Yandex
Объявления
16.10.2010, 12:59     Функции создания массива и удаления эл-та из массива
Ответ Создать тему
Опции темы

Текущее время: 09:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru