[C] Definir o endereço.

jonsmau

Membro
Boas,

como fazer para guardar um valor num endereco definido por mim?



por exemplo:
------------------------------
/* defino o endereco que quero usar, em sistema decimal, p.e. o nº 1525 */
int endereco=1525;
int *ap;

/* o valor do apontador ap fica o endereco definido em cima */
ap=(void*)endereco;

/* o valor do endereco por mim escolhido fica o numero 1*/
*ap=1;
------------------------------

o que é certo é que isto assim nao funciona, dá problema na expressao: *ap=1;
 
ap = &endereco;

eu nao quero escrever no endereco da variavel endereco, quero escrever num endereco qql.


ok pela explicacao.


como posso saber que enderecos posso usar? ha forma?
 
ap = &endereco;

eu nao quero escrever no endereco da variavel endereco, quero escrever num endereco qql.


ok pela explicacao.


como posso saber que enderecos posso usar? ha forma?

Infelizmente, ou talvez não, tu não podes simplesmente escolher o endereço de memória em que queres guardar os teus dados. Isto quem decide é o SO.

Talvez em LINUX, se quisesses partir muita pedra, poderias alterar o código fonte e colocá-lo de maneira a que pudesses escolher os endereços... :lol::lol:

Vá, cumps
 
Infelizmente, ou talvez não, tu não podes simplesmente escolher o endereço de memória em que queres guardar os teus dados. Isto quem decide é o SO.

Há ainda outro problema. Os endereços de memória que aparecem no programa são o resultado duma abstracção e apenas relativos ao próprio programa. Eles não tem qualquer relação com os endereços acessíveis por outras aplicações, nem tão pouco permitem aceder à memória usada por outras aplicações.
 
Há ainda outro problema. Os endereços de memória que aparecem no programa são o resultado duma abstracção e apenas relativos ao próprio programa. Eles não tem qualquer relação com os endereços acessíveis por outras aplicações, nem tão pouco permitem aceder à memória usada por outras aplicações.

Exactamente. Para cada aplicação, é como que se reservasse um certo "compartimento" da memória. Por isso é impossível colocar dados num endereço por nós especificado.

Seria bom. Os níveis de fragmentação da memória baixariam de certeza... :lol:

Vá, cumps
 
Back
Topo