Я пытаюсь объявить размер массива символов, и мне нужно использовать значение переменной, объявленной как size_t, чтобы объявить этот размер. Есть ли в любом случае, я могу применить переменную size_t к int, чтобы я мог это сделать?casting size_t to int объявить размер массива char
ответ
size_t
- целочисленный тип, и никакой приведение не требуется.
В C++, если вы хотите иметь динамически размером массив, вам нужно использовать динамическое распределение с помощью new
. То есть, вы не можете использовать:
std::size_t sz = 42;
char carray[sz];
Вы должны использовать вместо следующих:
std::size_t sz = 42;
char* carray = new char[sz];
// ... and later, when you are done with the array...
delete[] carray;
или, предпочтительно, вы можете использовать std::vector
(std::vector
управляет памятью для вас, чтобы вы не «т нужно помнить, чтобы удалить его в явном виде и вам не придется беспокоиться о многих проблемах собственности, которые приходят с ручным динамическим распределением):
std::size_t sz = 42;
std::vector<char> cvector(sz);
Незначительная деталь, но разве вы не должны использовать delete [] в своем примере, когда используете новый []? – Jacob
@Jacob: Да, и это еще одна отличная причина для использования 'std :: vector'. :-) (Исправлено и спасибо) –
для мор e background on size_t, я настоятельно рекомендую статьи Дэна Сакса: "Why size_t matters" и "Further insights into size_t"
- 1. Char to Int Pointer Casting Not Working
- 2. casting int pointer to char pointer
- 3. Тип Casting from char * to int
- 4. C++ casting void * to int error
- 5. Кастинг положительный 'int' to 'size_t'
- 6. casting char [] [] to char ** вызывает segfault?
- 7. Передача аргументов функции (int to size_t)
- 8. casting int [] to char [] не работает должным образом
- 9. C++ casting int to double
- 10. тип casting float to int
- 11. C/C++ casting void * to int (*()) (int, ...);
- 12. Boost mpi x64 warning «size_t to int»
- 13. Строка (const char *, size_t) в int?
- 14. Хранение char * размер массива в счетчике int
- 15. C++ char array to int и int to char array
- 16. C++ int to char
- 17. Haskell: Int to Char
- 18. Convert char * to int
- 19. Char to int. Haskell
- 20. Char to Int - C++
- 21. Подпись Char to Int
- 22. C++ char array to int
- 23. C++ Decimal to Hexadecimal (int to char)
- 24. Кастинг int to char pointer: неожиданное значение?
- 25. char * и unsigned char * casting
- 26. C: динамический размер массива объявить
- 27. int to string, char * itoa
- 28. FFI: Как объявить `size_t`
- 29. casting int to unsigned long long
- 30. C++ type casting int to union
'size_t' _is_ тип, используемый для размера массива. Мало того, что вам не нужен бросок, но если вы это сделаете, результат будет просто неявно преобразован обратно в 'size_t'. –