Если у меня есть пустой указатель, как я помещаю интервал в него?

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

А лучший подход должен был бы определить маркер, как Ваш "##", для которого можно просканировать в тексте. Затем выберите, что заменить из хеш-таблицы текстом, который следует за маркером как за ключом.

, Если это - часть сценария сборки затем, nAnt имеет замечательную особенность для того, чтобы сделать этот названный Цепочки Фильтра . Код для этого является открытым исходным кодом, таким образом, Вы могли посмотреть на как его сделанный для внедрения FAST.

12
задан sharptooth 25 August 2009 в 11:21
поделиться

5 ответов

*((int*)data[0])=x;

сделает это.

Вы можете рассмотреть возможность использования объединения. Примерно так:

union myvalues
{
    int i;
    double d;
    long l;
};

Тогда у вас может быть

union myvalues *foo[10];
foo[0] = malloc(sizeof(union myvalues));
foo[0]->i = x;

Вы также можете typedef объединение. sizeof (union myvalues) будет максимальным из sizeof членов. Итак, если у вас есть int i; и char c [40] в объединении, sizeof (union myvalues) будет 40. Запись в i затем перезапишет первые 4 символа в c (при условии, что ваши целые числа составляют 4 байта).

27
ответ дан 2 December 2019 в 03:32
поделиться

по причинам псевдонима. лучше сделать

mempcy( data[0], &x, sizeof( int ) );

Как это бывает, компилятор оптимизирует вызов memcpy, поскольку sizeof (int) является постоянным значением, но не нарушает различные правила псевдонима.

2
ответ дан 2 December 2019 в 03:32
поделиться

Хотя вы можете использовать приведение для выполнения присваивания, вероятно, будет намного проще написать такой код, как:

void *data[ 10 ];
int x = 100;
int *p;

p = malloc( sizeof *p );
data[ 0 ] = p;
*p = x;
2
ответ дан 2 December 2019 в 03:32
поделиться
*((int *)data[0]) = x;

Будет сделана копия x, поэтому факт, что это локальная переменная не важна.

10
ответ дан 2 December 2019 в 03:32
поделиться

попробуйте следующее:

data[0] = malloc(sizeof(int));
*((int*)data[0]) = x;

или

(int) (*(data[0])) = x;

не забудьте потом

free (data[0]);

.

1
ответ дан 2 December 2019 в 03:32
поделиться
Другие вопросы по тегам:

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