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 - C--

#1
Programación C/C++ / Re: [C++] Error stray 354
24 Noviembre 2012, 20:58 PM
PTM! El error estupido!! >.<

Muchas gracias de nuevo por la respuesta :)

(Al menos sirve como antecedente para cualquiera que tenga el mismo error :P).


Salu2!!
#2
Programación C/C++ / [C++] Error stray 354
24 Noviembre 2012, 09:01 AM
Hola de nuevo.

He aquí otra de mis dudas :P

Primero les mostraré la parte del código que me esta dando problemas (todo el resto funciona bien):

void mostrar(){

   //imagen inicial
   cout << "Imagen Inicial\n";
   for(int i=0; i<filas; i++){
       cout << endl;
       for(int j=0; j<columnas; j++){
           if(j<columnas-1)
               cout << pixeles[i][j].getRojo() << "-" << pixeles[i][j].getVerde() << "-" << pìxeles[i][j].getAzul() << " ";
           else
               cout << pixeles[i][j].getRojo() << "-" << pixeles[i][j].getVerde() << "-" << pìxeles[i][j].getAzul() << "\n";
       }
   }
   cout << endl;
   cout << endl;

   //imagen modificada
   cout << "Imagen Modificada" << endl;
   for(int i=0; i<filas; i++){
       cout << endl;
       for(int j=0; j<columnas; j++){
           if(j<columnas-1)
               cout << pixeles2[i][j].getRojo() << "-" << pixeles2[i][j].getVerde() << "-" << pìxeles2[i][j].getAzul() << " ";
           else
               cout << pixeles2[i][j].getRojo() << "-" << pixeles2[i][j].getVerde() << "-" << pìxeles2[i][j].getAzul() << "\n";
       }
   }
   cout << endl;
   cout << endl;

}

(Donde, linea 311: cout << pixeles[ i ][j].getRojo() << "-" << pixeles[ i ][j].getVerde() << "-" << pìxeles[j].getAzul() << " ";)


Y he aquí el error (click para verlo completo):



Cabe mencionar además que si por ejemplo acorto las "concatenaciones" de cout que dan problemas, de la siguiente forma, por ejemplo:

cout << pixeles[i][j].getRojo() << "-";

No me da error, compila todo bien, aunque si hago algo como esto:

cout << pixeles[i][j].getRojo();
cout << "-";
cout << pixeles[i][j].getVerde();
cout << "-";
cout << pìxeles[i][j].getAzul();
cout << " ";


Tampoco compila, dándome el mismo error.

Pareciera como sí la "concatenacion" se "saturara" y me diese algo así como un "tope" (si es que eso tiene algun sentido jaja). Aunque igual raro, pues creo que no debería (y nunca me habia pasado antes, con este ni con ningun otro lenguaje). WTF! O.o

Bueno, ese es mi problema. Ojalá puedan ayudarme tal como lo han hecho hasta ahora :)

Saludos y muchas gracias.
#3
Programación C/C++ / Re: [C++] Matrices
21 Noviembre 2012, 01:14 AM
Muy agradecido nuevamente :)

Salu2!!
#4
Programación C/C++ / Re: [C++] Matrices
19 Noviembre 2012, 20:39 PM
Excelente!! Hiciste exactamente lo que pedía :)
MUY agradecido.

Sólo me quedó una duda: Ya que la matriz se creó con new, ¿No es necesario poner en algun lado el comando delete para liberar memoria (en mi caso, al final del do-while del main que creé y antes del return, por ejemplo), y de ser así, cómo quedaría en el codigo para liberar esta matriz en particular?
#5
Programación C/C++ / [C++] Matrices
19 Noviembre 2012, 06:11 AM
Hola a todos..... tengo una duda existencial que aun no puedo resolver... necesito crear una matriz cuadrada de dimension n ingresada por el usuario por consola y luego el programa imprime la matriz con determinada forma creada por mi.

El codigo es el siguiente:

#include <iostream>
using namespace std;

void printMatriz(int m[][], int n){

   for(int i=0; i<n; i++){
       for(int j=0; j<n; j++){
           cout << m[i][j];
           if(j==n-1) cout << endl;
       }
   }
   cout << endl;

}

void forma(int m[][], int n){

   for(int i=0; i<n; i++){
       for(int j=0; j<n; j++){
           if(i==0) m[i][j] = 1;
           if(j==0||j==n-1) m[i][j] = 1;
           if(i==n-1) m[i][j] = 1;
       }
   }
   printMatriz(m,n);

}

int main(){

   int n = -1;
   int f;
   do{
       do{
           cout << "Ingrese dimension de matriz cuadrada mayor a 4: ";
           cin >> n;
           if(n==0) break;
       }while(n<5);
       int m[n][n];
       forma(m,n);        
   }while(n!=0);
   return 0;

}


Sé que esta mal la recepción de la matriz en las funciones, pero estoy perdido en como hacerlo funcionar.

Dado el código anterior, ¿Cuáles serían las modificaciones que ustedes le harían para realizar lo que quiero?
No es necesario que lo expliquen, sólo escriban el código funcional, con el menor numero de cambios posibles, así yo me encargo de investigar bien cómo es que funciona (si explican, mejor (más rapido). Si no, bien igual, que yo me craneo :P).

Saludos y gracias.
#6
Programación C/C++ / Re: Duda puntero en C
25 Septiembre 2012, 01:55 AM
Me di cuenta de lo que estaba realmente sucediendo cuando dejé de ver el código y me fui a cenar :P
Lo que pasa es que estaba interpretando una simple "lectura" de q en vez de una asignación a ésta (Duh!). Y al ver los ejemplos que dieron, lo corroboraron.

Muchísimas gracias :)
#7
Programación C/C++ / Duda puntero en C
24 Septiembre 2012, 04:24 AM
Hola a todos. Soy nuevo aquí y soy principiante en C, por lo que tengo la siguiente duda con este código:

#include <stdio.h>

int main(){
   
    int *a = (int*)malloc(sizeof(int)*3);
    int *b;
    *a = 2;
    *(a+1) = 4;
    *(a+2) = 6;
    b = a;
    *(b+1)=0;
    while(*(b++));
    printf("%i, %i, %i\n",*a,*(a+1),*(a+2));
    printf("%i, %i, %i\n",*b,*(b+1),*(b+2));
    free(a);
    getchar();
    return 0;
   
}


Por qué en la salida obtengo:

2, 0, 6
6, 1314869318, -1856398723


¿Por qué con ese while pareciera que "desaparecieran" los valores de los punteros iniciales de b?

*Nótese que es ";" al final del while y no un "{", y no hay ninguna línea de código dentro del while.


Saludos y gracias :)