Python - установить скрипт в систему

Двумерный массив не распадается на указатель на указатель на int. Он распадается на указатель на массивы ints - то есть только первое измерение распадается на указатель. Указатель не указывает на int указатели, которые при инкрементах увеличиваются на размер указателя, но на массивы из 5 целых чисел.

class Myclass {
private:
    int myarray[5][5];
public:
    typedef int (*pointer_to_arrays)[5]; //typedefs can make things more readable with such awkward types

    pointer_to_arrays get_array() {return myarray;}
};

int main()
{
    Myclass o;
    int (*a)[5] = o.get_array();
    //or
    Myclass::pointer_to_arrays b = o.get_array();
}

Указатель на указатель (int**) используется, когда каждый subarray выделяется отдельно (т. е. изначально у вас есть массив указателей)

int* p[5];
for (int i = 0; i != 5; ++i) {
    p[i] = new int[5];
}

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

В двумерном массиве вы получаете единый непрерывный блок памяти:

int arr[5][5]; //a single block of 5 * 5 * sizeof(int) bytes

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

34
задан Max Frai 17 May 2009 в 13:46
поделиться

1 ответ

РЕДАКТИРОВАТЬ: Этот ответ касается только установки исполняемых скриптов в / usr / bin . Я предполагаю, что у вас есть базовые знания о том, как работают файлы setup.py .

Создайте свой сценарий и поместите его в свой проект следующим образом:

yourprojectdir/
    setup.py
    scripts/
        myscript.sh

В вашем файле setup.py сделайте это:

from setuptools import setup
# you may need setuptools instead of distutils

setup(
    # basic stuff here
    scripts = [
        'scripts/myscript.sh'
    ]
)

Затем введите

python setup.py install

В основном это все. Есть шанс, что ваш скрипт попадет не совсем в / usr / bin , а в какой-нибудь другой каталог. В этом случае введите

python setup.py install --help

и найдите - параметр install-scripts и друзья.

38
ответ дан 27 November 2019 в 17:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: