Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/263: Рейтинг темы: голосов - 263, средняя оценка - 4.76
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274

В чем разница между динамическим массивом и статическим?

07.01.2019, 11:59. Показов 57987. Ответов 220
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ребята, я не понимаю различия. вроде читал литературу.

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

и тут я залез в онлайн компилятор (с++ 14) и сделал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main(){
 
int n;
std::cin >> n;
int array[n]; // ну я создал посути динамический массив.
 
int *arr;
arr=new int[n]; // здесь тоже. 
return 0;
}
 
значит они оба динамические?
объясните пожалуйста в чем действительно разница между статическим и динамическим массивом, чтобы я мог точно понимать что есть что
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.01.2019, 11:59
Ответы с готовыми решениями:

Разница между статическим и динамическим полиморфизмом
Добрый день Подскажите пожалуйста какая разница между статическим и динамическим полиморфизмом и пожалуйста на примере и virtual...

В чем разница между вектором и массивом
Я учу язык С/С++ и хотел у вас спросить в чем разница между вектором и массивом ? кроме тогдо что вектор создается vector<int> m; а...

В чем разница между обычным массивом и контейнером
В чем разница между обычным массивом и контейнером?

220
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.01.2019, 14:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrOffset Посмотреть сообщение
В любом случае русская терминология - это суррогат. Она вся целиком состоит из заимствованных слов.
Да. И есть ещё наработанная терминология времён железного занавеса, от которой уже трудно отказаться. Я не о том, - причины данного положения дел известны. Я о том, что ТС в этом запутан и не выпутывается. Вместо того, чтобы почитать о простом и потом вернутся к самым простым положениям темы "Массивы и указатели" он нашёл нестандартное расширение, позволяющее создавать на стеке (автоматический - не статический) массив с размером времени исполнения.
_stanislav, а что вы скажете, когда ТС воскликнет, что нашёл чудо и может создать массив:
C++
1
char * arrChar="I am const char literal vs static class duration!";
Я о том, что частности и отклонения, это не то с чего стоит начинать изучать такую тему.

Добавлено через 2 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
Почему к константному?
Потому, что имя массива преобразуется к указателю-константе (там где ожидается указатель).
1
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
08.01.2019, 14:25
Цитата Сообщение от IGPIGP Посмотреть сообщение
Потому, что имя массива преобразуется к указателю-константе (там где ожидается указатель).
Я спрашиваю без подвоха, просто хочется узнать с чего вы решили, что он константный.
Как только я узнаю предпосылки, которые вас привели к такому выводу, то смогу объяснить почему это не так.
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.01.2019, 14:37
DrOffset, обычно в инструкции
C++
1
2
A arr[123];
A * a = arr;
этого не видно. Потому что при присваивании arr присваивается копирующим присваиванием (допускающим ещё одно преобразование) и тот факт, что arr константен не виден. А вот
C++
1
2
3
A arr[123];
*(arr+1)=1//ok -преобразование не конфликтует с константностью в выражении
*(++ arr)=1;//error
не скомпилируется, так как имя массива приводится именно к константному указателю. Вы можете присвоить указателю имя массива (константный указатель), но не можете присвоить константному указателю ничего. Только инициализировать можно.
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
08.01.2019, 14:59
Цитата Сообщение от IGPIGP Посмотреть сообщение
++ arr
такое вообще можно делать?
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.01.2019, 15:09
Цитата Сообщение от _stanislav Посмотреть сообщение
такое вообще можно делать?
Дык в посте же сказано. Можно делать всё. Но компилироваться будет только то, что разумно.
А указатель вроде arr - rvalue если точнее, но ведёт себя как неизменяемый (константный) программный объект.
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
08.01.2019, 15:12
Цитата Сообщение от IGPIGP Посмотреть сообщение
А указатель вроде arr - rvalue если точнее
массив является lvalue.

Добавлено через 58 секунд
не изменяемым lvalue
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
08.01.2019, 15:19
Цитата Сообщение от IGPIGP Посмотреть сообщение
не скомпилируется, так как имя массива приводится именно к константному указателю
Ну во-первых вы сейчас все-таки меняете не указатель, а сам массив.
Во-вторых, вы не находите, что сейчас в некотором роде похожи на ТС, т.к. судите о неком свойстве по внешним признакам?
Вы сможете найти более формальное обоснование, разве в стандарте где-то говорится, что prvalue указатель, который получается из массива, имеет const-квалификацию?
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
08.01.2019, 16:25  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Потому, что имя массива преобразуется к указателю-константе (
тысяча извинений.. к указателю на константу или к константному указателю?
я это плохо понимаю

Добавлено через 22 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
i, j - это индексы первой и второй размерностей соответственно.
Добавлено через 39 секунд
B - это вторая размерность (размерность подмассива).
хотелось бы сделать умный вид,что все понял,но я не понял тут ничего. оказывается статический массив, или как там его правильно, очень сложная штука.
покажите пожалуйста на небольшом примере, как это происходит.

вот массив arr[2][2];
на стеке разместиться константный указатель и сам массив и подмассивы. подмассивы это я понимаю, что массивы, что будут элементами основного массива arr
указатель будет ссылаться на область памяти в котором будет находится первый элемент массива,когда его присвоят этому массиву. что потом? от этой области памяти будут осчитаны элементы подмассива?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
08.01.2019, 16:49
pcmax, зачем тебе эти дебри расслабься, возьми книгу Страуструпа для начинающих, для новичка хватит, а то с ума сойдешь
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
08.01.2019, 17:08
Лучший ответ Сообщение было отмечено pcmax как решение

Решение

Цитата Сообщение от pcmax Посмотреть сообщение
вот массив arr[2][2];
на стеке разместиться константный указатель и сам массив и подмассивы. подмассивы это я понимаю, что массивы, что будут элементами основного массива arr
указатель будет ссылаться на область памяти в котором будет находится первый элемент массива,когда его присвоят этому массиву. что потом? от этой области памяти будут осчитаны элементы подмассива?
Никакой указатель на стеке не размещается. Занимаемая на стеке память и так имеет адрес. Зачем еще раз помещать какой-то указатель в тот же стек?

Цитата Сообщение от pcmax Посмотреть сообщение
покажите пожалуйста на небольшом примере, как это происходит.
C++
1
2
3
4
5
6
7
8
9
10
const int A = 2;
const int B = 4;
 
int arr1[A][B] = {}; // в массиве A массивов по B элементов
 
int v1 = arr1[1][2]; // 3 элемент второго подмассива.
 
int arr2[A * B] = {};
 
int v2 = arr2[1 * B + 2]; // 3 элемент второго подмассива
Физически, т.е. на низком уровне, эти два примера абсолютно эквивалентны.
Первый пример характерен тем, что типизация и вычисление значения относительно начала последовательности ложится на компилятор. Второй пример - это ручное повторение того же механизма, но уже без гарантий (и ограничений) типизации для многомерных массивов.
В обоих случаях никакие указатели не хранятся.
Адрес начала массива и так известен - вычисляем, относительно зашитого в код компилятором смещения по стеку и адреса начала фрейма стека (который известен во время исполнения). На самом стеке никаких адресов не хранится в данном случае.
Самый простой способ вам это прочувствовать на себе - ознакомиться с ассемблером, и порисовать на листочке стек и смещение по нему.

Вот такой код
C++
1
2
3
4
5
6
7
void bar(int * p);
 
void foo()
{
    int arr[10];
    bar(arr);
}
Превращается вот в такой ассемблерный листинг:
Assembler
1
2
3
4
5
6
foo(): # @foo()
  sub rsp, 40
  mov rdi, rsp
  call bar(int*)
  add rsp, 40
  ret
Тут все очень просто. В начале исполнения регистр rsp содержит адрес стекового фрейма функции foo. Отняв (SUB) от него 40, а это не что иное как sizeof(int) * 10 - размерность массива в байтах, мы получили адрес начала массива, который и передали в функцию bar. Почему отняли? Потому что стек растет вниз. Это значит что при добавлении значения в него адрес вершины стека уменьшается.

Видите, никаких указателей на стеке тут нет.
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
08.01.2019, 17:12
Цитата Сообщение от DrOffset Посмотреть сообщение
Вот такой код
C++Выделить код
1
2
3
4
5
6
7
void bar(int * p);
void foo()
{
* * int arr[10];
* * bar(arr);
}
Превращается вот в такой ассемблерный листинг:
AssemblerВыделить код
1
2
3
4
5
6
foo(): # @foo()
* sub rsp, 40
* mov rdi, rsp
* call bar(int*)
* add rsp, 40
* ret
Тут все очень просто. В начале исполнения регистр rsp содержит адрес стекового фрейма функции foo. Отняв (SUB) от него 40, а это не что иное как sizeof(int) * 10 - размерность массива в байтах, мы получили адрес начала массива, который и передали в функцию bar. Почему отняли? Потому что стек растет вниз. Это значит что при добавлении значения в него адрес вершины стека уменьшается.
ты этим ответом ему смертный приговор подписал.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.01.2019, 17:16
Цитата Сообщение от DrOffset Посмотреть сообщение
Ну во-первых вы сейчас все-таки меняете не указатель, а сам массив.
Это о чём? Оператор ++ не желает работать без lvalue ссылки, а поэтому правостороннее значение ему не нравится.
Цитата Сообщение от DrOffset Посмотреть сообщение
вы не находите, что сейчас в некотором роде похожи на ТС, т.к. судите о неком свойстве по внешним признакам?
Все мы хороши когда говорим о динамических массивах имея ввиду указатели и о статических массивах имея ввиду автоматические. Однако, вопросы вызывают именно неточности друг друга, а не суть вопроса. А тут я пас. Не стану рядиться в замеры толщин имхо. Оно у меня гораздо меньше.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
08.01.2019, 17:21
Тоже самое с многомерным массивом:
C++
1
2
3
4
5
6
7
void bar(int * p);
 
void foo()
{
    int arr[3][6];
    bar(arr[0]);
}
Получаем код:
Assembler
1
2
3
4
5
6
foo(): # @foo()
  sub rsp, 72
  mov rdi, rsp
  call bar(int*)
  add rsp, 72
  ret
Что такое 72? Это 3 * 6 * sizeof(int), 18 * 4 = 72.
Если создать массив из 18 элементов типа int, то ассемблер никак не изменится.

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

Добавлено через 1 минуту
Цитата Сообщение от _stanislav Посмотреть сообщение
ты этим ответом ему смертный приговор подписал
Ну и пусть. Если собрался программировать на С и С++, то придется в этом разобраться, ну или бросить все

Добавлено через 1 минуту
Цитата Сообщение от IGPIGP Посмотреть сообщение
Это о чём?
О том, что тип выражения, к которому вы применили ++ в своем примере - это lvalue of array type, а не указатель.
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.01.2019, 17:48
Цитата Сообщение от DrOffset Посмотреть сообщение
О том, что тип выражения, к которому вы применили ++ в своем примере - это lvalue of array type, а не указатель.
Мой компилятор комплекта MVS 2008 говорит
Ошибка 1 error C2105: для "++" требуется левостороннее значение c:\users\ig\documents\projects_mvs_old\, ,,
MinGW говорит
...\Documents\ConsoleTest\main.cpp:541: ошибка: lvalue required as increment operand
Хоть он и поновее. И вначале ещё говорит
...\ConsoleTest\main.cpp:541: ошибка: cannot increment value of type 'char [3]'
поэтому, думаю - реализация и стандарт, это иногда совпадает, но не суть. Суть в том, что о базовых вещах таких как время жизни, область видимости, особенности инициализации нативных массивов (автоматических, статических и динамически созданных) никто говорить не будет. Ну и ладно. О динамически созданных.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
int  main()
{
    typedef int arr_type_int10 [10];
 
    auto ptra = new arr_type_int10{1,2,3};
cout<<ptra[0]<<endl;
system("pause");
return 0;
}
Это-таки массив и он-таки создан в динамической памяти. А выделяемые под указатели блоки так называют и на русском и на английском.
0
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
08.01.2019, 18:55  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Никакой указатель на стеке не размещается. Занимаемая на стеке память и так имеет адрес. Зачем еще раз помещать какой-то указатель в тот же стек?
а где же тогда хранится указатель?

Добавлено через 18 минут
Цитата Сообщение от DrOffset Посмотреть сообщение
int v2 = arr2[1 * B + 2]

не смог разобраться.
C++
1
2
3
4
5
6
7
int main(){
 
int array[3][3];
 
 
return 0;
}
теперь нужно сделать g++ -s
открыть получившийся файл nano и прочитать Ассемблер

видимо там будет понятно что есть array[3[3[

но это с точки зрения Ассемблера, а как плюсы сами видят этот массив?

где хранится его имя? как расположенны его элементы на стеке? сначала элементы массива или подмассива?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
08.01.2019, 18:57
Цитата Сообщение от pcmax Посмотреть сообщение
а как плюсы сами видят этот массив?
как массив
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.01.2019, 19:00
Цитата Сообщение от pcmax Посмотреть сообщение
как расположенны его элементы на стеке?
Внутренне этот массив одномерен. Компилятор помогает вам работать с ним как с двумерным. В этом смысле 2-D структура выделяемая в динамической памяти как "массив указателей" указывающих на одиночные цепочки даже по внутреннему устройству никак не похожа на 2-D массив (автоматичиский или статический - тут уже без разницы).
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
08.01.2019, 19:20
Цитата Сообщение от IGPIGP Посмотреть сообщение
Это-таки массив и он-таки создан в динамической памяти.
Я об этом с вами вообще не говорил

________________________________
Вообще весьма досадно видеть, что вы воспринимаете наш разговор в контексте "замеров толщин". Неужели вам самому комфортно оставаться в этих вопросах на уровне наблюдаемых эффектов и не пытаться копнуть глубже?

Собственно, если бы вы не воспринимали наш разговор как некие "замеры", то смогли бы обнаружить, что я был не совсем прав (и т.к. я со своей стороны ничем не мерился, то мне совершенно комфортно это признать). По нынешнему состоянию дел получается, что массив - это таки modifiable lvalue, но такой, который конвертируется в указатель в modifiable контекстах. Этот вывод можно сделать опираясь на эти цитаты:
An lvalue is modifiable unless its type is const-qualified or is a function type.(ref)
Про массивы ни слова. В отличие от С, в котором массивы есть с этом списке:
A modifiable lvalue is an lvalue that does not have array type, does not have an incomplete type,
does not have a const-qualified type, and if it is a structure or union, does not have any member (including,
recursively, any member or element of all contained aggregates or unions) with a const-
qualified type. (ref)
В ранних версиях стандарта С++, была заметка, что массив - неизменяемый lvalue, но похоже, что она была неверна все это время. Теперь там только ссылка на правила преобразования:
An lvalue or rvalue of type “array of N T” or “array of unknown bound of T” can be converted to a prvalue of type “pointer to T”.
The temporary materialization conversion ([conv.rval]) is applied. The result is a pointer to the first element of the array. (ref)
Поэтому диагностику ваших компиляторов можно считать верной.

Однако по исходному вопросу, все остается неизменным. prvalue, который образуется в выражении с инкрементом имени массива нельзя модифицировать вот поэтому:
The operand shall be a modifiable lvalue. (ref)
А не потому что prvalue const-qualified.

Добавлено через 3 минуты
Цитата Сообщение от pcmax Посмотреть сообщение
а где же тогда хранится указатель?
По факту для автоматических объектов указатель всегда только один - это указатель стека, и он хранится в регистре (r)sp (для Intel-совместимых архитектур).
Все остальные вычисления производятся относительно него исходя из известных размеров типов на этапе компиляции (в результирующий код встраиваются заранее подготовленные смещения).

Цитата Сообщение от pcmax Посмотреть сообщение
теперь нужно сделать g++ -s
Лучше пробуйте здесь: https://godbolt.org/

Добавлено через 54 секунды
Цитата Сообщение от pcmax Посмотреть сообщение
где хранится его имя?
Нигде. Имя существует только на этапе компиляции.

Добавлено через 1 минуту
Цитата Сообщение от pcmax Посмотреть сообщение
как расположенны его элементы на стеке? сначала элементы массива или подмассива?
Последовательно.
Сначала элементы первого подмассива, потом второго и т.д.
Точно так, как если бы это был один массив единственной размерности.
Это все хорошо видно на примерах выше. Вы просто торопитесь. Будь я вашим преподавателем, я бы отправил вас медитировать на сутки или двое, прежде чем позволил бы задать новые вопросы.
4
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
08.01.2019, 19:31
Цитата Сообщение от DrOffset Посмотреть сообщение
Я об этом с вами вообще не говорил
Я не говорил этого в Ваш, конкретно, адрес. Там к Вам относятся только сентенции о плохих терминах и плохих переводах. Это сказано о том, что
Цитата Сообщение от IGPIGP Посмотреть сообщение
Суть в том, что о базовых вещах таких как время жизни, область видимости, особенности инициализации нативных массивов (автоматических, статических и динамически созданных) никто говорить не будет. Ну и ладно.
Цитата Сообщение от DrOffset Посмотреть сообщение
Вообще весьма досадно видеть, что вы воспринимаете наш разговор в контексте "замеров толщин".
Я не так вижу. Я вижу, что вместо того чтобы говорить о блоках выделяемых в куче и о сравнении их с типом - массив (не std::array а именно си-шный массив), Вы увидели мою неточность указателем-константой. Хотя я могу привести цитату по крайней мере из одной книжки, где делается именно эта же неточность, но не буду. Я по ней начинал учиться и мне нравится её автор. Дама с пониманием предмета и хорошим чувством юмора.
И разговор уже пару страниц идёт о замере ширины (и длины) истинности высказывания.
А между тем, константность и немодифицируемость (в части их различий), это дебри для данной темы и выяснение идёт лишь в контексте того кто был не прав.
А для ТС было бы полезней понять, что выделенный блок остается жить по выходе из функции, например. Но на это ноль реакции. О статическом, динамическом и тёпло-мягком говорим.
При чём каждый о своём. Каждый решает, о чём речь идёт (в контексте того о чём он говорил и о чём нет). А может мы не читаем друг друга как следует?
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
08.01.2019, 19:45
Цитата Сообщение от IGPIGP Посмотреть сообщение
И разговор уже пару страниц идёт о замере ширины (и длины) истинности высказывания.
....
А для ТС было бы полезней понять, что выделенный блок остается жить по выходе из функции, например. Но на это ноль реакции.
Не могу согласиться. Если вы не заметили, я не только вам отвечаю, но и достаточно подробно отвечаю ТС.
И хоть про динамически (размещаемые) массивы я не говорил, но про автоматические - было сказано достаточно, чтобы речи о "нуле реакции" не шло

Цитата Сообщение от IGPIGP Посмотреть сообщение
А между тем, константность и немодифицируемость (в части их различий), это дебри для данной темы и выяснение идёт лишь в контексте того кто был не прав.
Ну пока что ТС и не реагирует на наши дебри.
Для него это просто фоновый шум. Но уж лучше такой, хоть кому-то полезный, чем никакой.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2019, 19:45

В чем разница между массивом строк и List<string>?
А есть ли принципиальная разница между string array1 и List&lt;string&gt; array2 ? И если есть, то в чем она заключается?

Разница между статическим и экземплярным методом
В книге уже несколько раз встречается понятие статического и экземплярного метода, но не поясняется конкретно, в чем между ними разница,...

В чем разница между простым линейным списком, и динамическим линейным списком?
вопрос в теме

Разница между массивом структур и очередью
Поясните пожалуйста разницу между массивом структур и очередью.

VPN не подключается со статическим IP-адресом (ошибка 720), с динамическим — все работает
Всем привет! В магазине имеется VPN соединение подключающееся к серверу на складе. При получении ip-адреса автоматически подключение...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru