Вы не можете возвращать массивы из функций из C. Вы также не можете (не должны) делать это:
char *returnArray(char array []){
char returned [10];
//methods to pull values from array, interpret them, and then create new array
return &(returned[0]); //is this correct?
}
returned
создается с автоматическим временем хранения и ссылками на него станет недействительным, когда он покинет область объявления, т. е. когда функция вернется.
Вам нужно будет динамически распределить память внутри функции или заполнить предварительно выделенный буфер, предоставленный вызывающим.
Вариант 1:
динамически выделяет память внутри функции (вызывающий абонент, ответственный за освобождение ret
)
char *foo(int count) {
char *ret = malloc(count);
if(!ret)
return NULL;
for(int i = 0; i < count; ++i)
ret[i] = i;
return ret;
}
Вызывает его так:
int main() {
char *p = foo(10);
if(p) {
// do stuff with p
free(p);
}
return 0;
}
Вариант 2:
заполнить предварительно выделенный буфер, предоставленный вызывающим абонентом (абонент выделяет buf
и переходит к функции)
void foo(char *buf, int count) {
for(int i = 0; i < count; ++i)
buf[i] = i;
}
И назовите его так :
int main() {
char arr[10] = {0};
foo(arr, 10);
// No need to deallocate because we allocated
// arr with automatic storage duration.
// If we had dynamically allocated it
// (i.e. malloc or some variant) then we
// would need to call free(arr)
}
Я знаю многих людей, сам включал, которые используют различные взломы IE для получения прозрачной поддержки PNG. Это похоже на немного большее количество справки, и, пока она работает, и размер является довольно небольшим, я не видел бы много против использования ее.
Пока Вы знаете точно, что это фиксирует, я сказал бы, идут для него. Я не уверен в этом lib точно, но некоторые освобождают, становятся очень дорогими, если у Вас есть большой DOM, поскольку они имеют тенденцию сцепляться в поведениях основы файла HTC на КАЖДОМ Элементе DOM. Это заставляет страшную "Загрузку x y" сообщение строки состояния постоянно высвечиваться на начальной загрузке, и любой недавно генерировал содержание DOM.
хорошо его красивое и работы трут способ, которым можно использовать cs3 функции как li:hover. мы сделали потерянный проекта в прошлый раз с помощью ie8.js, и он работает отличный способ.
su
не будет доступно.
– CommonsWare
9 July 2015 в 20:59
Я знаю, что существуют некоторые инструменты для решения прозрачной проблемы PNG, которые более гибки, чем это. Например, плагин jQuery ifixpng2 поддержит фоновую позицию, которую не делает ie7-js.
Это работает, но, который стоит иметь в виду, что ie7.js и ie8.js действительно намного больше, чем оказывают прозрачную поддержку PNG. Даже с прозрачной поддержкой PNG, который стоит иметь в виду, что изображения прозрачного фона не могут быть размещены (повторенное) фоновое повторение использования рядом или расположили позиционное фоном использование. Это препятствует любой способности использовать трансформации CSS, использующие позиционный фоном. Я только использовал его на одном сайте, который я сделал, и теперь, когда я обновляю сайт, я не могу удалить ie8.js потому что, если я делаю все расположение повреждений веб-сайта в IE. Я не полагаю, что буду использовать его в будущем, и вместо этого полагаться на простые взломы CSS или просто позволять моим сайтам "ухудшаться корректно" в IE6.
Я использовал его раньше, и мои результаты смешаны. Эти сценарии приводят к тому, что IE загружается немного при загрузке страницы. По сути, вы должны думать об этом, как об элементах и правилах таблиц стилей, чтобы применять «исправления» для областей, в которых отсутствует конкретный механизм рендеринга. В некоторых случаях, в зависимости от сложности вашей разметки или таблиц стилей, это может занять некоторое время, и вы увидите зависание браузера.
если вы сможете обойтись без этих затрат на производительность, вы сэкономите время на разработку, так как будете тратить меньше времени на хакерские обходы IE6; IE7 / IE8 предоставит достаточно недостающей функциональности, чтобы вы могли избежать определенных крайних случаев, лучше разрабатывать с использованием стандартов (min-width / min-height, множественных селекторов className и т. Д.), И некоторые проблемы с рендерингом исчезнут.
Однако, если вам просто нужна 24-битная прозрачная поддержка PNG, используйте инструмент, созданный для этого. Включать IE7 / IE8.js только для поддержки PNG - все равно что колотить в гвоздь с танком. Для этого используйте DD_belatedPNG.
и некоторые проблемы рендеринга исчезнут.Однако, если вам просто нужна 24-битная прозрачная поддержка PNG, используйте инструмент, созданный для этого. Включать IE7 / IE8.js только для поддержки PNG - все равно что колотить в гвоздь с танком. Для этого используйте DD_belatedPNG.
и некоторые проблемы рендеринга исчезнут.Однако, если вам просто нужна 24-битная прозрачная поддержка PNG, используйте инструмент, созданный для этого. Включать IE7 / IE8.js только для поддержки PNG - все равно что колотить в гвоздь с танком. Для этого используйте DD_belatedPNG.