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ú

Mensajes - ianmorar03

#1
Hola, queria saber por que cada vez que levanto mi programa en c, en la consola cada se ven caracteres extraños. Les explico el programa, quiero hacer una simulacion del COVID-19 como este: https://www.washingtonpost.com/graphics/2020/world/corona-simulator/
Lo estoy haciendo con pthread y demas, pero a la hora de mostrar los puntos en la pantalla, mientras se actualiza la pantalla se van mostrando caracteres extraños.

Este es el codigo que imprime la matriz de simulacion:

void dibujarMapa(struct Mapa* m) {
    for (int i = 0; i < m->filas; i++) {
        for (int j = 0; j < m->columnas; j++) {
            if (m->mapaS[i][j] != 0) {
                move(i , j );
                addch('O');
                refresh();
            }
        }
    }
}


Los primeros segundos, se ve bastante bien, pero al rato comienzan a mostrarse los caracteres extraños, alguien tiene alguna idea por que?
Una imagen que muestra los caracteres que aparecen en mi consola:

#2
Cita de: RayR en 14 Abril 2020, 16:42 PM
Dado que usas el operador de flecha con carro y tu código compila sin errores, ese miembro es un puntero, pero no estás reservando memoria para él. Haz eso y debería solucionarse tu problema.

Efectivamente RayR, el problema se soluciona reservando la memoria para el carro, dado que es un problema de Segmentacion, no se puede acceder a esa parte en memoria por que no existe, a diferencia de C++ los punteros no trabajan de la misma manera en C.
Gracias por sus aportes.
#3
Buenas, alguien me podria ayudar con este error, que significa? Busque en la web y revise mi codigo y todo esta bien, no entiendo mucho C, estoy empezando. Estoy programando en Linux, con consola, no se si alguien me pudiera ayudar, el error es el siguiente:

"Segmentation fault (core dumped)"

Estoy implementando una "Cola" (FIFO). El codigo compila sin errores, pero a la hora de ejecutarlo me muestra ese mensaje. Encontre que el problema esta en la funcion "enqueue", pero no se como solucionarlo, aqui la funcion:


void enqueue(int p, bool t){
   struct Nodo *temp;
   temp=malloc(sizeof(struct Nodo));
   temp->carro->placa = p;
   temp->carro->tipo = t;
   temp->sig=NULL;
   if (head == NULL){
       head = temp;
       tail = temp;
   }
   else{
       tail->sig = temp;
       tail = temp;
   }
}


Si alguien me pudiera ayudar seria genial.
Gracias de antemano.
#4
Programación C/C++ / C++ Ficheros - Busqueda
16 Octubre 2018, 22:04 PM
Hola gente!
Tengo una duda, hago un proyecto sobre ingresar letras (A/B/C/D/E/F/.../Z/) que estan escritas en un .txt y las quiero meter en una lista, pero no se como hacer para leer cada caracter e ignorar los '/'.
PD: en el .txt tambien existen las letras "RR","CH".
Alguien tiene alguna idea de como se hace el metodo?
#5
Programación C/C++ / Re: C++ PUNTEROS a clases POO
6 Septiembre 2018, 18:32 PM
Ahora que recuerdo, creo haber visto el constructor de copia
en clases y no estaba prestando atención jaja
Utilizare el de copia para dinamico, que estoy utilizando
Dinamicos en mi programa
#6
Programación C/C++ / Re: C++ PUNTEROS a clases POO
6 Septiembre 2018, 17:55 PM
Voy a averiguar mas sobre un constructor de copia y vere si funciona
Las clases siempre las uso en mayúsculas, y este código ni siquiera se
si compila, lo hice lo mas rapido y sencillo para que me entendieran :P
El codigo original es mas complicado, y tiene mucho mas cosas gg

Pero muchas gracias de antemano a los 2, @MAFUS y @CalgaryCorpus ;-)
#7
Programación C/C++ / C++ PUNTEROS a clases POO
6 Septiembre 2018, 10:10 AM
Tengo un problema a la hora de hacer un programa:
Digamos que quiero insertar objetos dentro de una colección, y en el main, quiero hacer una copia de un objeto a otro, a la hora de cambiar los atributos del nuevo objeto(copia), se cambian los de la original, doy un ejemplo:
Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;
class persona{
private:
   string nom;
   string id;
public:
   persona(){
       nom=" ";
       id=" ";
   }
   persona(string n,string i){
       nom = n;
       id=i;
   }
   string getNom(){
       return nom;
   }
   string getId(){
       return id;
   }
   void setNom(string n){
       nom=n;
   }
   void setId(string i){
       id=i;
   }
   ~persona(){
       nom=" ";
       id=" ";
   }
};
class coleccion{
private:
   persona **p;
   int cantidad;
public:
   coleccion(){
       p=new persona*[10];
       cantidad=0;
   }
   void ingresarPersona(persona *pe){
       p[cantidad]=pe;
       cantidad++;
   }
   persona devuelve(int i){
       return *p[i];
   }
   ~coleccion(){
       for(int i=0;i<cantidad;i++){
           delete persona[i];
       }
       delete[] persona;
   }

};

int main(){
   coleccion *c = new coleccion;
   persona *p1 = new persona("JUAN","12345");
   persona *p2 =new persona("PEDRO","45678");

   c->ingresarPersona(p1);
   c->ingresarPersona(p2);

   cout<<c->devuelve(0).getNom()<<endl; //muestra por pantalla "JUAN"
   cout<<c->devuelve(1).getNom()<<endl; //muestra por pantalla "PEDRO"

   persona *p3; //hago una tercera persona
   *p3 = c->devuelve(0); //le asigno los valores de la p1 a la p3
   c->insertarPersona(*p3);

   cout<<c->devuelve(2).getNom()<<endl; //muestra por pantalla "JUAN"

   c->devuelve(2).setNom("CAMBIO");

   //se supone que solo cambia el nombre de p3
   //pero cambia tambien el valor de p1

   cout<<c->devuelve(0).getNom()<<endl; //muestra por pantalla "CAMBIO"


   system("PAUSE");
   return 0;
};




Cuando yo hago una copia del puntero, al cambiar los valores de la copia, cambian los de la original, como puedo solucionar este problema?
Espero me hayan entendido :D
#8
Programación C/C++ / [C++] Hacer un backspace
23 Septiembre 2017, 23:20 PM
Hola!
Estoy haciendo un codigo que me imprima un char 'O' y quiero que en la consola se mueva hacia la derecha EN LA MISMA LINEA DE LA CONSOLA Si me entienden?

Si hago un backspace al ultimo caracter lo hace!
como hago un Backspace??

#9
Si tengo 8 numeros y quiero saber cual de ellos es el mayor como hago?
Que debo hacer?
ejemplo
3,8,2,6,1,7,9,4
quiero que me devuelva el 9.
#10
Programación C/C++ / [C++] Ayuda con Vectores
12 Septiembre 2017, 23:51 PM
Hola! Estoy empezando con vectores y quiero saber que metodo debo utilizar para saber hasta que posicion del vector esta siendo ocupado. Explico mejor:

[a] [a] [a] [a] [ ] [ ] [ ]
0    1   2    3   4   5   6

En ese vector hasta la posicion 3 esta siendo ultizado, quiero saber como hago para que me muestre por pantalla los primeros 4 valores, Y TAMBIEN me muestre los ultimos 3 que no se utilizan.

Espero que me puedan ayudar gracias :D