LINUX.ORG.RU
Ответ на: комментарий от abs

Ведь когда мы пишем A[100]; Никакой известности об этом 100 нет, и A из себя представляет просто указатель на нулевой элемент.

да ну?

    int a[100], *c;
    std::cout<<sizeof(c)<<endl;
    std::cout<<sizeof(a)<<endl;

Вывод: 8 400

next_time ★★★★★
()
Ответ на: комментарий от abs

концептуальная разница между массивом и указателем состоит в том, что память массива всегда инициализована, а вот память указателя — нет. поэтому, для массива гарантируется, что не выходя за его пределы не произойдёт ошибки доступа к памяти, а вот для указателей таких гарантий нет. по этой самой причине при int a[99] и b[100], у a и b — разные типы.

next_time ★★★★★
()
Ответ на: комментарий от next_time

память массива всегда инициализована

скорее распределена(выделена) ибо инициализирована может и мусором(указатель стека «сдвинули»).

это чего это?

гипербола конечно но если нужна матрица NxM то mtl? и прочий boost или свой вел.

если же «гирлянда (возможно разноразмерных) отрезков» то хм. хз.

ибо вектор векторов не гарантирует что все данные одним куском ( ну можно конечно спецом так настроить что все данные максимального прямоугольника(с валидными и outOfrange в некоторых строках) будут одним куском памяти лежать.

т.е производительней может тогда быть какой нить map из пары координат в элемент .

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

скорее распределена(выделена) ибо инициализирована может и мусором(указатель стека «сдвинули»).

ага, именно потому я сказал «память», а не «данные») но соглашусь, выделена звучит корректнее.

если же «гирлянда (возможно разноразмерных) отрезков» то хм. хз.

я из такого юзкейса исходил, да

гипербола конечно но если нужна матрица NxM то mtl? и прочий boost или свой вел.

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

next_time ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.