динамическое распределение массива в C с размером массива переменных
массивы размером с переменной, также известной как динамические массивы, представьте задачу в стандартной C. Подумайте о следующей программе
while (! Feof (picture)) {
n = fread (sbuf, sizeof (char), siz, picture);
/ * ... делать вещи с буфером ... */
/* memset (sbuf, 0, sizeof (sbuf)); */
}
Код выше пытается выделить массив символов с размером, определяемым переменной siz. Однако в стандарте C размеры массива должны быть постоянными. Это ставит вопрос: как мы можем правильно объявить SIZ, чтобы разрешить компиляцию кода?
n = fread(Sbuf, sizeof(char), siz, picture); /* ... do stuff with the buffer ... */ /* memset(Sbuf, 0, sizeof(Sbuf)); */
STD :: Vect массивы. Он может быть легко распространен на любой желаемый размер, и его использование относительно просты. Чтобы создать массив с размером переменной, можно использовать char* sbuf = new char [siz]; Чтобы выделить множество символов SIZ на куче. Тем не менее, этот подход вводит проблемы с управлением памяти (например, потенциальные утечки памяти), что делает его менее подходящим, чем std :: vector.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3