ok, gracias companero, no entendi algunas cosas o mejor dicho no conozco bien como trabajar bien con punteros, referencia, etc...
puedes decirme como uso int*, seria (**numeros)? o (numeros*)?
perdoname la ignoracia
aqui no entiendo bien que es lo que debo hacer.. debo no enviar valores por referencia? si no es mucho pedir puedes ponerme un ejemplo en codigo para ver..
mill gracias por la ayuda
Cita de: do-while en 23 Octubre 2012, 15:59 PMCódigo (c) [Seleccionar]
agregar(&(*combinaciones)[(*numeros)[0]],&numeros,1,cn,100);
Esto esta mal. numeros es de tipo int*, por lo tanto (*numeros) es de tipo int, y no puedes desplazar algo que no sea un puntero (a no ser que en este caso te deje por ser el desplazamiento nulo...)
puedes decirme como uso int*, seria (**numeros)? o (numeros*)?
perdoname la ignoracia
Cita de: do-while en 23 Octubre 2012, 15:59 PMCódigo (c) [Seleccionar]
agregar(&((*n).(*hijo)[(*valores)[posicion]])),&(*valores),posicion,length,monto);
valores es un vector de punteros, (*valores) es el primer puntero, por lo tanto, al hacer (*valores)[posicion], estas desplazando posicion veces el primer puntero que contiene el vector valores. Y es mas que posible que estes apuntando a cualquier posicion de memoria, ya que el argumento original de la llamada (en main por lo menos) es un vector, y sus valores no son punteros, sino valores enteros que has introducido tu. Si quieres evitarte problemas, pasa simplemente cono parametro el vector, ya que el mismo identificador del vector es un puntero (constante) a la primera posicion, por lo que ya te aseguras el pasar el vector por "referencia" y accedes directamente a sus distintos elementos mediante indices o por desplazamientos sobre el el origen...
aqui no entiendo bien que es lo que debo hacer.. debo no enviar valores por referencia? si no es mucho pedir puedes ponerme un ejemplo en codigo para ver..
mill gracias por la ayuda