Size: a a a

2021 March 03

АК

Александр Караев... in supapro.cxx
Stas Koynov
так я и говорю вот вы пишите init драйвера на ++, выделяете буфер для ДМА, для того, для сего. вигас памяти нет, драйвер загрузить низя. оставлять тоже низя, надо сказать что упс. и очистить память. считай что вы в конструкторе посередине встряли. что делать ? как освободить ресурсы на правильных ++
RAII
источник

D

Danya in supapro.cxx
Stas Koynov
так я и говорю вот вы пишите init драйвера на ++, выделяете буфер для ДМА, для того, для сего. вигас памяти нет, драйвер загрузить низя. оставлять тоже низя, надо сказать что упс. и очистить память. считай что вы в конструкторе посередине встряли. что делать ? как освободить ресурсы на правильных ++
источник

IZ

Ilia Zviagin in supapro.cxx
YEgor Briz
В чём разница между двумерным массивом и массивом указателей?
В двумерном массиве все элементы располагаются смежно в одном большом куске памяти.

В массиве указателей — только элементы "строк" располагаются смежно
источник

SK

Stas Koynov in supapro.cxx
источник

SK

Stas Koynov in supapro.cxx
вы либо 100% инициализируете девайс. либо говорите что ошибка и 100% возвращаете ресурсы. размер стека для драйвера одна страница 4КиБ
источник

D

Danya in supapro.cxx
Ну для начала бы я дал нормальные имена
err_rx_sgmap — ну почему нельзя писать нормально?
источник

D

Danya in supapro.cxx
Во-вторых, это можно сделать функциями
источник

D

Danya in supapro.cxx
Тут даже не надо на С++ писать, чтобы код лучше сделать
источник

SK

Stas Koynov in supapro.cxx
Danya
Ну для начала бы я дал нормальные имена
err_rx_sgmap — ну почему нельзя писать нормально?
да вопрос про очистку. как сделать ее более понятной чем есть? вы уходите от темы блин
источник

S

Stepan in supapro.cxx
Danya
Ну для начала бы я дал нормальные имена
err_rx_sgmap — ну почему нельзя писать нормально?
Ограничение в 80 символов
источник

D

Danya in supapro.cxx
Stepan
Ограничение в 80 символов
Нормальное имя > форматирование
источник

NM

Nastya Medveda in supapro.cxx
Добрый вечер, скажите, а где в памяти компьютера хранится значение типа переменной?  

Адрес в памяти понятно, значение переменной тоже понятно.  Но где хранится информация о типе?
Если создать две переменные они будут друг от друга ровно на sizeof их типа, то есть информацию об их типе туда не впихнуть:

#include <iostream>

int main() {
   int a = 1;
   int b = 2;

   std::cout << &a << std::endl;
   std::cout << &b << std::endl;
   std::cout <<"space between int vars:" <<  reinterpret_cast<long int>(&a) - reinterpret_cast<long int>(&b) << std::endl; //4
   std::cout << "sizeof(int) " << sizeof(int) << std::endl; //4
}
источник

D

Danya in supapro.cxx
Nastya Medveda
Добрый вечер, скажите, а где в памяти компьютера хранится значение типа переменной?  

Адрес в памяти понятно, значение переменной тоже понятно.  Но где хранится информация о типе?
Если создать две переменные они будут друг от друга ровно на sizeof их типа, то есть информацию об их типе туда не впихнуть:

#include <iostream>

int main() {
   int a = 1;
   int b = 2;

   std::cout << &a << std::endl;
   std::cout << &b << std::endl;
   std::cout <<"space between int vars:" <<  reinterpret_cast<long int>(&a) - reinterpret_cast<long int>(&b) << std::endl; //4
   std::cout << "sizeof(int) " << sizeof(int) << std::endl; //4
}
Нигде не хранится, в рантайме нет типов (ну почти)
источник

IZ

Ilia Zviagin in supapro.cxx
Danya
Ещё раз
Си для своего времени был прорывом и на нём написано много нужного и важного софта
Но по современным меркам это говно язык
С++ старается стать лучше, а Си очень слабо пытается
Очень правильные слова.

А ещё , С — язык хакеров, настоящих.
Хакеры — это не те, что взламывают что-то, это те, что пишут хаки.
Хак — это прикольный кусок кода, оригинальное решение, требующее , например, мало кода , а делающее серьёзную задачу,
либо какой-то изобретательский ход чтоб в этом был.
В общем, что-то оригинальное, интересное и прикольное.
Соответственно пол Сишной стандартной библиотеки написаны на хаках.
ASCIIZ строки. Серия функций strXXX и много чего.

Но хаки бывают разные. Бывают просто реально интересные идеи,
а бывают что-то типа STRTOK  — нереентерантное говно.

Вот поэтому примерно половина CRT - это кусок говна.
источник

IZ

Ilia Zviagin in supapro.cxx
Nastya Medveda
Добрый вечер, скажите, а где в памяти компьютера хранится значение типа переменной?  

Адрес в памяти понятно, значение переменной тоже понятно.  Но где хранится информация о типе?
Если создать две переменные они будут друг от друга ровно на sizeof их типа, то есть информацию об их типе туда не впихнуть:

#include <iostream>

int main() {
   int a = 1;
   int b = 2;

   std::cout << &a << std::endl;
   std::cout << &b << std::endl;
   std::cout <<"space between int vars:" <<  reinterpret_cast<long int>(&a) - reinterpret_cast<long int>(&b) << std::endl; //4
   std::cout << "sizeof(int) " << sizeof(int) << std::endl; //4
}
Нигде
источник

NM

Nastya Medveda in supapro.cxx
Danya
Нигде не хранится, в рантайме нет типов (ну почти)
но когда вычисляется  a-b, то ведь учитывается тип, так как математика для int и  double  разная.
источник

NK

Nikolay Kononov in supapro.cxx
так это все в компайл тайме учитывается
источник

D

Danya in supapro.cxx
Nastya Medveda
но когда вычисляется  a-b, то ведь учитывается тип, так как математика для int и  double  разная.
Нет, учитывается размер переменной
источник

DP

Denis Paukaev in supapro.cxx
Nastya Medveda
но когда вычисляется  a-b, то ведь учитывается тип, так как математика для int и  double  разная.
на стадии компиляции есть тип, и он учитывается, после компиляции уже нет
источник

AS

Anatoly Shirokov in supapro.cxx
Nastya Medveda
но когда вычисляется  a-b, то ведь учитывается тип, так как математика для int и  double  разная.
Все перегрузки будут выбраны в compile time
источник