Как инициализировать указатель без знака - PullRequest
2 голосов
/ 16 апреля 2011

Я хочу инициализировать буфер unsigned char * длиной 1500, чтобы в нем можно было хранить значения из некоторых других источников.

Ответы [ 3 ]

11 голосов
/ 16 апреля 2011

Если вы хотите его в куче,

unsigned char* buffer = new unsigned char[1500];

, если хотите в стеке,

unsigned char buffer[1500];

2 голосов
/ 16 апреля 2011
std::vector<unsigned char> buffer(1500);
1 голос
/ 22 апреля 2013

C способ сделать это:

unsigned char * buffer = ( unsigned char * )malloc( 1500 * sizeof( unsigned char ) );

Если вы хотите инициализировать без ненужных данных, созданных из предыдущих указателей, используйте calloc, это инициализирует буфер с символом 0.

(Unsigned char *) перед malloc просто набирает приведение, некоторые компиляторы жалуются, если это не сделано.

Не забудьте вызвать free () или delete (), когда вы закончите суказатель, если вы используете C или C ++ соответственно, так как вы находитесь в C ++, вы можете использовать delete ().

...