Jump to content

Recommended Posts

Posted

Boa tarde, eu quando estava a melhorar e um exercicio que tinha feito e questionei me sobre a existencia de uma função que nos coloca se  um determinado numero de numeros  num vector.

Eu encontrei a funçao memset mas essa funçao apenas coloca da posiçao 1 ate a posiçao que queremos copiar..

Eu queria uma que fosse da posiçao x ate a posiçao y.

isto sem ter que gastar memoria ao ter que fazer um ciclo para isto.

Alguem tem conhecimento de uma funçao que nos faça isso?

Posted

a função memset coloca o espaço de memória com o valor determinado :

void * buffer;
int byte_inicial;
int byte_final;
...
// iniciar o array buffer
// atribuir valores significativos a byte_inicial e byte_final
...
memset(&buffer[byte_inicial], // posição inicial da memória a ser atribuída
       0, // valor a ser atribuído a cada byte 
       byte_final - byte_inicial); // número de bytes a serem atribuídos
IRC : sim, é algo que ainda existe >> #p@p
Posted

Atenção a uma coisa: os vectores do C++, tal como todas as outras estruturas da STL, são estruturas opacas, pelo que qualquer acesso ao seu conteúdo deve ser feito pelos membros definidos para isso. O que quer dizer que nunca deves tentar aceder ao conteúdo por outros processos (como usar o memset para inicializar vários elementos duma vez).

Podes ver aqui a definição dos vectores: http://www.cplusplus.com/reference/stl/vector/

Em C, há quem chame vectores a arrays mas não devem ser confundidos com os do C++.

'void *' é um ponteiro genérico, sem tipo. Pode ser usado sempre que o tipo real do ponteiro não seja conhecido durante a compilação. Por exemplo uma função que retorna um ponteiro para um de vários tipos de estruturas diferentes deve ser declarada como devolvendo um 'void *'.

Posted

pk colocas te void * buffer; ?

Suponho que tenha sido um lapso.

Devia ter sido char *buffer ou unsigned char *buffer.

O Standard de C não define [tt]buffer[byte_inicial][tt] quando buffer é um ponteiro para void.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.