Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Условия Добрый день, Имеется вот такое задание: и составлен такой код: #include <stdio.h> int main() { //раздел объявления переменных float x, y; https://www.cyberforum.ru/ c-beginners/ thread2768564.html Поменять столбцы в матрице местами по формуле C (СИ)
#include<stdio.h> //scanf() printf() getchar() #include<math.h> #include<locale.h> //setlocale() #include<stdlib.h> //rand() malloc() #include<time.h> int random(int a) { return rand() % a; }
C (СИ) Определить, входит ли в состав предложения данное слово С клавиатуры ввести предложения. Определите, входит ли в его состав задача слово (регистры букв не в счет). Если слова нет, то вывести соответствующее сообщение. Иначе указать номер заданного слова в предложении, затем удалить его и напечатать сокращенное предложения. #include <stdio.h> #include <ctype.h> #include <stdlib.h> int main() { https://www.cyberforum.ru/ c-beginners/ thread2768452.html C (СИ) Заполнение двумерных массивов различными способами Динамические массивы – заполнение двумерных массивов различными способами. Входной параметр, определяющий размерность массива: n. Вывод полученного массива на консоль в удобном для пользователя, «читабельном» виде. На языке Си. матрица 1 0 0 ... 0 0 1 1 1 0 ... 0 1 1 1 1 1 ... 1 1 1 .. .. .. .. .. .. .. 1 1 0 ... 0 1 1 1 0 0 ... 0 0 1 https://www.cyberforum.ru/ c-beginners/ thread2768450.html
Записать слова буквы в которых не повторяются C (СИ)
С клавиатуры ввести предложения. Напечатать в столбик те слова введенного предложения, в которых все буквы разные (ни одна буква не повторяется в слове), или вывести сообщение об отсутствии таких слов. !!!ЕСЛИ НЕ ПОМОЖЕТЕ ЗАБЕРУТ В АРМИЮ!!!
C (СИ) Обчислити визначник матриці шляхом перетворення матриці на діагональну Доброй ночи,пытаюсь сделать,но получилось только создать матрицу. Подскажите,пожалуйста, как преобразовать матрицу на диагональную?Заранее спасибо. #include <stdio.h> #include <time.h> #include <math.h> int main() { int array = { 0 }; int N = 10; //размер матрицы 10 на 10 https://www.cyberforum.ru/ c-beginners/ thread2768406.html
C (СИ) Ceedling : как писать тесты ? Коряво, но собрал Ceedling в Eclipse и прогнал простейший пример. А где можно найти мануал, как писать юнит-тесты в нем ? Дайте, пожалуйста, ссылку, если можно... https://www.cyberforum.ru/ c-beginners/ thread2768392.html C (СИ) Символьные строки
С клавиатуры ввести предложения и ключевое слово. Напечатать все слова введенного предложения, не содержащие букв, из которых состоит ключевое слово, или вывести сообщение об отсутствии таких слов
C (СИ) Ввести набор символьных строк, каждая из которых задает определенную дату в форме: День Наименование_месяца Год. Заменит https://www.cyberforum.ru/ c-beginners/ thread2768241.html
Помогите, пожалуйста, написать програму на Си. Ввести набор символьных строк, каждая из которых задает определенную дату в форме: День Наименование_месяца Год (все даты должны принадлежать текущем веку). Заменить введены дать сокращенными формами: день.месяц.год, например 6 сентября 2018> 06.09.18 и напечатать их. Подсказка: лучше создать дополнительную строку с сокращенной дате и затем...
C (СИ) Односвязный список. Счётчик элементов списка https://www.cyberforum.ru/ c-beginners/ thread2768233.html
Решил сделать односвязный список и сразу столкнулся с тем, что при стандартных реализациях может выслать куча ненужных проблем. Получать определенные элемент списка я решил с помощью адресной арифметики. #include <stdio.h> #include <stdlib.h> typedef struct list { int value; struct list *next;
C (СИ) Вывод на экран информации по вводимой с клавиатуры
Очень глупый вопрос, уверен в этом, но найти никак не могу. Как правильно заставить программу выполнить вывод на экран информации по вводимой с клавиатуры. В моем случае, нужно ввести фамилию и заставить программу вывести номер. Которые я вводил ранее.
C (СИ) Изменить готовый код с матрицей #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> #include <locale.h> int main() { https://www.cyberforum.ru/ c-beginners/ thread2768180.html
200 / 236 / 33
Регистрация: 29.03.2019
Сообщений: 667
13.01.2021, 14:22 0

Динамический массив, автоматически расширяющийся при попытке добавить новый элемент - C (СИ) - Ответ 15176812

13.01.2021, 14:22. Показов 3347. Ответов 20
Метки (Все метки)

Ответ

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <ds/dslib.h>
 
void
free_user_data(void * ptr)
{
  return;
}
 
typedef struct {
  size_t length;
  size_t capacity;
  size_t item_size;
  void * data;
} array_t;
 
typedef array_t * array_ptr;
 
 
#if defined(DS_CAPACITY)
#undef DS_CAPACITY
#define DS_CAPACITY (8)
#endif
 
void
array_init(array_ptr a, size_t item_size)
{
  a->capacity = DS_CAPACITY;
  a->length = 0;
  a->item_size = item_size;
  a->data = NULL;
  return;
}
 
 
void
array_free(array_ptr a)
{
  if ( a->data != NULL ) {
    free( a->data );
  }
  return;
}
 
 
void *
array_add(array_ptr a, void * data)
{
  void * ptr = NULL;
 
  if ( ((a->length * a->item_size) % a->capacity) == 0 ) {
    size_t asize = 0;
 
    while ( asize <= a->length ) {
      asize += a->capacity;
    }
    DS_GETMEM(a->data, asize * a->item_size);
  }
  ptr = ((uint8_t*) a->data) + a->length * a->item_size;
  a->length++;
  return memmove(ptr, data, a->item_size);
}
 
 
void *
array_get(array_ptr a, void * store, size_t index)
{
  return !( (a == NULL) || (a->data == NULL) || (index >= a->length) ) ?
    memmove(store, ((uint8_t*) a->data) + index * a->item_size, a->item_size) :
    NULL;
}
 
 
void
array_dump(array_ptr a)
{
  size_t ptr;
 
  for (size_t i = 0; i < a->length; i++) {
    array_get(a, &ptr, i);
    fprintf(stdout, "%4zu", ptr);
  }
  fprintf(stdout, "\n");
  return;
}
 
 
int
main(int argc, char * argv[])
{
  array_t a;
 
  array_init(&a, sizeof(size_t));
 
  for (size_t i = 0; i < (DS_CAPACITY * 2); i++) {
    array_add(&a, &i);
  }
  array_dump(&a);
  array_free(&a);
  exit(EXIT_SUCCESS);
}
Bash
1
2
3
4
~/src:$ clang --std=c17 ./sample.c -lds
~/src:$ ./a.out 
   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
~/src:$
Добавлено через 3 минуты
P.S. я не видел смысла добавлять в свою библиотеку подобного рода структуру данных. Вот макрос, который "на все случаи жизни"
C
1
2
3
4
5
6
7
8
9
10
11
12
extern void * DS_ptr;
#define DS_GETMEM(p,s) \
{\
  do {\
    DS_ptr = NULL;\
    if ((DS_ptr = realloc(p, s)) == NULL) {\
      fprintf(stderr, "%s:%s realloc error %s\n", __FILE__, __func__, strerror(errno));\
      exit(EXIT_FAILURE);\
    }\
    p = DS_ptr;\
  } while(0);\
}
Добавлено через 10 минут
edit me

Вернуться к обсуждению:
Динамический массив, автоматически расширяющийся при попытке добавить новый элемент C (СИ)
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2021, 14:22
Готовые ответы и решения:

Как добавить новый элемент в динамический массив?
Вопрос есть ли такая функция которая добавляет в конец массива(динамического) новый элемент. К...

Как добавить новый элемент в динамический массив
Вопрос есть ли такая функция которая добавляет в конец массива(динамического) новый элемент. К...

Не могу добавить последний элемент в новый динамический массив
Доброго времени суток,мне нужно проверить массив parray1 и записать в parraytemp элементы первого...

Как передвигать указатель чтобы выделить память под новый элемент и добавить новый элемент в массив?
Допустим есть некое условие,нам нужно при каждом его выполнении выделить память под новый элемент и...

20
13.01.2021, 14:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2021, 14:22
Помогаю со студенческими работами здесь

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

Новый элемент в динамический массив
Здравствуйте! Меня интересует один вопрос: можно ли в динамический массив добавлять размерность,...

Как вставить в динамический массив новый элемент?
Есть динамический массив целых чисел: a:array of integer; пусть его длина SetLength(a, 30); а...

Динамический массив, добавить элемент
У меня проблема вот в чем Мне для VBO в OpenGL для буфера нужен одномерный массив, и в него...

Как добавить элемент в динамический массив?
Всем привет. У меня такая проблема: Написал класс avto, в нем данные об автомобиле.Моя задача...

Исключение при попытке добавить элемент в БД (entity framework)
Пытаюсь сохранить объект в БД: public void Add(EntityModels entity) { ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru