#include <stdio.h>
#include <stdlib.h>
#define SUCESSO 0
#define FALHA -1
typedef struct {
int x;
int y;
} Ponto;
void criarPonto(Ponto **ponto) {
(*ponto) = (Ponto *)NULL;
}
int preencherPonto(Ponto **ponto, int x, int y) {
*ponto
= malloc(sizeof(Ponto
)); if (*ponto == NULL) return FALHA;
(*ponto)->x = x;
(*ponto)->y = y;
return SUCESSO;
}
int main() {
Ponto *ponto;
criarPonto(&ponto);
printf("O endereco de memoria é: %p\n", (void *)ponto
); if (preencherPonto(&ponto, 0, 1) == FALHA) return FALHA;
printf("O endereco de memoria é: %p\n", (void *)ponto
); printf("Coordenada X: %d\n", ponto
->x
); printf("Coordenada Y: %d\n", ponto
->y
); return SUCESSO;
}
//https://pt.stackoverflow.com/q/307590/101
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgU1VDRVNTTyAwCiNkZWZpbmUgRkFMSEEgLTEKCnR5cGVkZWYgc3RydWN0IHsKICAgIGludCB4OwogICAgaW50IHk7Cn0gUG9udG87Cgp2b2lkIGNyaWFyUG9udG8oUG9udG8gKipwb250bykgewogICAgKCpwb250bykgPSAoUG9udG8gKilOVUxMOwp9CgppbnQgcHJlZW5jaGVyUG9udG8oUG9udG8gKipwb250bywgaW50IHgsIGludCB5KSB7CiAgICAqcG9udG8gPSBtYWxsb2Moc2l6ZW9mKFBvbnRvKSk7CiAgICBpZiAoKnBvbnRvID09IE5VTEwpIHJldHVybiBGQUxIQTsKICAgICgqcG9udG8pLT54ID0geDsKICAgICgqcG9udG8pLT55ID0geTsKICAgIHJldHVybiBTVUNFU1NPOwp9CmludCBtYWluKCkgewogICAgUG9udG8gKnBvbnRvOwogICAgY3JpYXJQb250bygmcG9udG8pOwogICAgcHJpbnRmKCJPIGVuZGVyZWNvIGRlIG1lbW9yaWEgw6k6ICVwXG4iLCAodm9pZCAqKXBvbnRvKTsKICAgIGlmIChwcmVlbmNoZXJQb250bygmcG9udG8sIDAsIDEpID09IEZBTEhBKSByZXR1cm4gRkFMSEE7CiAgICBwcmludGYoIk8gZW5kZXJlY28gZGUgbWVtb3JpYSDDqTogJXBcbiIsICh2b2lkICopcG9udG8pOwogICAgcHJpbnRmKCJDb29yZGVuYWRhIFg6ICVkXG4iLCBwb250by0+eCk7CiAgICBwcmludGYoIkNvb3JkZW5hZGEgWTogJWRcbiIsIHBvbnRvLT55KTsKICAgIHJldHVybiBTVUNFU1NPOwp9CgovL2h0dHBzOi8vcHQuc3RhY2tvdmVyZmxvdy5jb20vcS8zMDc1OTAvMTAx