Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ejercicio 1)
- struct punto{
- double x,y;
- };
- double proyeccion(struct punto p, char eje){
- if (eje=='x')
- return p.x;
- if (eje=='y')
- return p.y;
- return 0;
- }
- double dist (struct punto p1, struct punto p2){
- return sqrt(pow((p1.x-p2.x),2)+pow((p1.y-p2.y),2));
- }
- char cuadrante(struct punto p){
- if (p.x==0){
- if (p.y==0)
- return 'o';
- return 'y';
- }
- if (p.y==0)
- return 'x';
- if(p.y>0){
- if(p.x>0)
- return '1';
- return '2';
- }
- if (p.x<0)
- return '3';
- return '4';}
- Ejercicio 2)
- a INT - 3
- &a *INT
- *a NO EXISTE
- ptr *INT - &a
- &ptr *PUNTERO
- *ptr INT - 3
- qtr *INT - vector
- &qtr *PUNTERO
- *qtr INT - 10
- vector *INT
- &vector *PUNTERO
- *vector INT - 10
- ++qtr *INT - vector+1
- ++*qtr INT - 11
- ++*vector INT - 11
- *&ptr *INT - &a
- Ejercicio 3)
- cp = &'a' trata de igualar a un puntero la dirección de memoria de un caracter.
- *ip1 = ip2 trata de igualar lo que apunta ip1 a ip2, cuando el puntero no está inicializado.
- Ejercicio 4)
- 1- Se usan variables globales y no se utilizan paréntesis en la llamada a initialize.
- #include <stdio.h>
- void initialize(int a, int *b) {
- if (a>0) *b=1; else *b=0;
- }
- int main() {
- int a, b;
- a=1;
- initialize(a,&b);
- printf("%d %d\n", a, b);
- return 0;
- }
- 2- Se pierde la referencia a la memoria reservada para pj, además que creo que para liberar memoria debería usarse el puntero al que originalmente se le asignó con malloc en vez de otro que casualmente apunta a la misma dirección.
- #include <stdio.h>
- int main() {
- int *pi = malloc(sizeof(int)), *pj;
- *pi = 11;
- pj = pi;
- printf("*pi= %d, *pj= %d", *pi, *pj);
- free(pi);
- // resto de código
- return 0;
- }
- 3- No se declara b antes de asignarle a un puntero su dirección de memoria, además que se sobreescribe memoria utilizando un puntero no inicializado.
- #include <stdio.h>
- int main() {
- int a=34, *ptr=&a;
- int b=45, *ptr2=&b;
- *ptr = 34;
- printf(" %d =?= %d", a, *ptr);
- return 0;
- }
- 4- Esto es horrible...
- 5- WTF esa asignación.
- i. nuevo->apellido; Es incorrecto pues nuevo no es un puntero.
- ii. pest->division; Correcto, vale 'a'.
- iii. (*pest)->apellido; Es incorrecto pues (*pest), o sea, nuevo, no es un puntero. Similar al apartado i.
- iv. *pest->apellido+2; Correcto, vale 'N'.
- v. *(pest->apellido+2); Correcto, vale 'p'.
- vi. pest->apellido[2]; Correcto, vale 'p'.
Add Comment
Please, Sign In to add comment