Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Gojira

#1
Programación C/C++ / Punteros y arrays.
3 Marzo 2018, 12:40 PM
He intentado asignar a un puntero la variable x que es de tipo entero directamente, y me pedia el operador de referencia.

int * ptr = x; //no me deja
int * ptr = &x; //si me deja

Luego he creado un array, y he intentado asignar a un puntero el array con el operador de referencia, y me pedia que le quitara el operador de referencia y apuntara directamente al array.

int x[5] = {1,2,3,4,5};

int * ptr = x; //si me deja
int * ptr = &x; //no me deja

¿Por que es eso?
¿Los arrays son un conjunto de punteros, x seria la direccion del valor de la primera celda del array x en realidad y int * ptr = &x es pedir la direccion de una direccion?
#2
Hola, estoy haciendo un ejercicio muy sencillo, pero no se hacerlo. Tengo que hacer una funcion para cambiar cada uno de los valores de las variables de la clase. Habia pensado que fuera una funcion con dos parametros, en el primero se indica el el objeto.variable a cambiar y en el segundo se indica la cantidad. El problema es que las variables son de varios tipos y no se como seguir, no me acepta auto.

¿O estoy enfocandolo mal, directamente?

EDIT. Vale, creo que esta todo mal, ya que no tendria que indicarle el objeto, porque la función actua sobre el propio objeto al que pertenece, ¿no? Pero entonces, ¿como le indico la variable?

#3
¿A que esta apuntando el puntero pFunc de la siguiente imagen?¿A la dirección en memoria del valor que retorne Sum con los parámetros que le aporte el puntero?

¿Y por que se permite que se le asigne la direccion en memoria de sum(), pero a un puntero normal no se le permite hacer lo propio con una variable?

#4
Estoy seguro de que se puede hacer de forma mucho mas sencilla, siempre añado pasos y variables de más.

¿Y deberia corregir algo en cuanto al estilo/legibilidad?

Tengo que hacer un programa que, mientras el usuario lo desee, pida números e indique mediante mensaje en pantalla si el número es mayor o menor de 10.

Código (cpp) [Seleccionar]
// Practicas.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>


using namespace std;


int main(){
int numintro;
bool seguir;
char respuesta;
do
{
cout << "Introduce un numero: " << endl;
cin >> numintro;

if (numintro > 10)
cout << "El numero introducido es mayor que diez." << endl;
else
cout << "El numero introducido es menor que diez." << endl;

cout << "Quieres seguir?(S/N)" << endl;
cin >> respuesta;

if (respuesta == 'S' || respuesta == 's')
seguir = true;
else
seguir = false;
} while (seguir == true);

    return 0;
}


Gracias.
#5
A ver si alguien sabe resolvermelas.

Estoy leyendo el libro de Anaya de programación en C/C++, asi que hay como una mezcla de ambos, pero bueno.

Lo primero, en relación con los punteros. A ver si consigo entenderlos, porque la explicación me cuadra, pero luego cuando veo como se usan en ejemplos, se me descuadran.


Vale, el libro dice que los punteros son un tipo de variables que almacenan direcciones de memoria, concretamente almacenan el numero de la dirección de memoria, no la dirección en si. Asi que tenemos tres posibilidades.

Puede aparecer en el código:
*puntero = &variable; //Significaria que el puntero contiene el numero de la direccion en memoria de esa variable.
*puntero, sin mas, que se utiliza para referirse al valor de la variable cuyo numero de direccion se contiene en ese puntero.
Y por ultimo "puntero", sin mas, sin operadores, y sin asignaciones, que contiene el numero de direccion de la variable a la que apunta. Ok.

Pero luego, lo veo en la práctica y me encuentro esto.
Si no se entiende, intento subir una foto mejor.



Vale, se define el puntero p de tipo char.
Y luego, ¿se le asigna a p un contenido distinto a un numero de direccion en memoria de una variable con el "p = strtok(palabras, ",");" o contiene el numero de direccion del resultado que se obtenga de ejecutar la funcion strtok?¿Y si es asi, por que no hay un operador &? Directamente, ¿que es p, ahi, que esta haciendo, cual es su resultado? Porque luego hace un printf p, directamente, sin asterisco y sin nada que de acuerdo con lo que se explica en la definicion de puntero deberia imprimir en pantalla el numero de direccion de memoria de una variable, y no el valor de una variable. Me descoloca.



Por cierto, ¿como se hace en c++ para que la consola no se cierre de golpe al ejecutar un programa simple? Por ejemplo un printf sin mas, lo ejecuta y en un microsegundo se cierra. Lo ha ejecutado bien, pero se cierra. ¿se puede evitar? No me funciona getchar, getche y esas cosas.

Tenia varias dudas chorra mas, pero no me acuerdo.