Ponteiros em C, não consigo compilar no ubuntu [RESOLVIDO]

1. Ponteiros em C, não consigo compilar no ubuntu [RESOLVIDO]

Diego
Diego_Fell

(usa Ubuntu)

Enviado em 08/02/2016 - 07:37h

sou novo tanto no ubuntu quando num estudo um tanto mais aprofundado na linguagem, se eu coloco um código qualquer, imprimir o valor de uma variável por exemplo, ele vai e compila de boa, porém, se eu mando imprimir o endereço de memória dessa variável ele começa a dar erro, usando os compiladores no windows eu consigo tranquilo.

Assim Compila:
#include <stdio.h>
#include <stdlib.h>

int main (){

int x = 10;

printf("\n\n%d\n\n", x);

return 0;
}


Assim não compila:

#include <stdio.h>
#include <stdlib.h>

int main (){

int x = 10;

printf("\n\n%d\n\n", &x);

return 0;
}


Imagem do erro:

https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-xfp1/v/t1.0-9/12651146_971879462900052_88329517730...


  


2. MELHOR RESPOSTA

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 08/02/2016 - 09:18h

Amigo, seu compilador está corretíssimo.

Ah, e você pode executar seu programa, é só uma warning.

O problema que está falando é que o %d espera números, enquanto para mostrar o endereço de memória, o correto é utilizar o %p, pois mostra em Hexadecimal(?), e que é assim que deve ser mostrado o endereço de memória. Usar %d é uma má ideia de quem te ensinou a fazer isto.

Espero ter ajudado

[]'s

T+

--

Att,

Thiago Henrique Hüpner

(Mensagem scaneada pelo antivírus........ops! não precisa, afinal eu uso Linux!)


3. Re: Ponteiros em C, não consigo compilar no ubuntu [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/02/2016 - 07:41h

Tenta algo como

int *px;
*px = 10
printf ("%d\n",px);

Não testei.


----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



4. Re: Ponteiros em C, não consigo compilar no ubuntu [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/02/2016 - 07:49h

Diego_Fell escreveu:

Assim não compila:

#include <stdio.h>
#include <stdlib.h>

int main (){

int x = 10;

printf("\n\n%d\n\n", &x);

return 0;
}


Estranho que aqui funcionou,

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



5. Re: Ponteiros em C, não consigo compilar no ubuntu

Diego
Diego_Fell

(usa Ubuntu)

Enviado em 08/02/2016 - 09:23h

Pow cara muito obrigado, eu vi a mensagem e nem tentei executar, sou acostumado a compilar no codebloks ou devc e nunca me deparei com algo assim. Obrigado


6. Re: Ponteiros em C, não consigo compilar no ubuntu [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 08/02/2016 - 09:37h

Opa, que bom que ajudei.

Marque o tópico como resolvido e clique em melhor resposta, por gentileza.

Espero ter ajudado

[]'s

T+

--

Att,

Thiago Henrique Hüpner

(Mensagem scaneada pelo antivírus........ops! não precisa, afinal eu uso Linux!)



7. Re: Ponteiros em C, não consigo compilar no ubuntu [RESOLVIDO]

Diego
Diego_Fell

(usa Ubuntu)

Enviado em 08/02/2016 - 11:14h

Só me apareceu mais uma dúvida de leve aqui, olhado as posições de memória do programa notei que sempre que faço uma nova compilação o endereço muda, até com a mesma variável, o que não acontece no windows, que sempre aparece o mesmo endereço, seria uma espécie de limpador de memória sempre que fecho o programa no linux?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts