Панель инструментов веб-разработчика Internet Explorer работает со всплывающими окнами?

Тип void не имеет размера. Поэтому вы не можете использовать void * для очистки массива. Вы не можете разыменовать этот тип по той же причине.

Вы должны привести к указателю с определенным типом:

void clean_buffer(void *ptr, size_t n)
{
    unsigned char *my_ptr = ptr;
    for (int i = 0; i < n; i++)
        my_ptr[i]=0;
}

Вы должны позаботиться о том, чтобы размер, передаваемый вашей функции, не мог быть числом или массивами, потому что компилятор не может выполнять арифметику указателей с [114 ] указатели. А для размеров вы должны использовать size_t

Вместо этого вы должны передать размер массива в байтах:

int main(void)
{
   float  *pf;
   int    *pi;

   pf = malloc(10*sizeof(float));
   pi = malloc(10*sizeof(int));

   clean_buffer( pf, 10*sizeof(float));
   clean_buffer( pi, 10*sizeof(int));

   return 0;
}

Или вам нужно передать любую другую информацию, которая может быть использована для определить тип и / или размер данных.

Также: приведение к возвращаемому значению malloc не требуется в C. Приведение параметров clean_buffer к типу, который уже имеет переменную, бесполезно. Тип указателя в любом случае преобразуется в void *, поскольку это то, что ожидает функция.

Примечание: в других ответах и ​​комментариях упоминается, что вы можете просто передать указатель на memset или использовать calloc и т. Д. Это может быть верно для этого очень специфического случая, но если вы хотите сделать что-то еще, кроме простого обнуления памяти применимы те же аспекты, что и к указателям void *, как я показал здесь. И в этих случаях memset или calloc не помогают.

10
задан Leniel Maccaferri 19 March 2014 в 04:15
поделиться

3 ответа

Я вполне уверен, это не будет работать с модальными всплывающими окнами. При открытии всплывающих окон как модальных, Вам, вероятно, придется изменить код на немодальный только для отладки целей.

4
ответ дан 4 December 2019 в 00:27
поделиться

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

Иначе обновите свой вопрос, и я попытаюсь выручить снова.

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

1
ответ дан 4 December 2019 в 00:27
поделиться

Используйте IE8, который имеет значительно улучшенный набор инструментов разработчика по сравнению с чрезвычайно ограниченным набором в IE7. Нажмите F12, чтобы открыть всплывающее окно с инструментами разработчика.

1
ответ дан 4 December 2019 в 00:27
поделиться
Другие вопросы по тегам:

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