Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Ayuda programa c - error de memoria
Autor Mensaje
Feer Sin conexión
Presidente del CEIT
Ing. Electrónico
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.672
Agradecimientos dados: 601
Agradecimientos: 2.969 en 451 posts
Registro en: Apr 2010
Mensaje: #1
Ayuda programa c - error de memoria Dudas y recomendaciones Informática I (Electrónica)
Alguno me ayuda a encontrarle el problema?
No se que puede ser me volvio boludo ya....

Necesito resolverlo con todos esos punteros, supuestamente me lo dieron lleno de errores, salve varios pero ahora me tira error de memoria y ya probe de todoConfused


#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>


int vectorcreate(long **inicio,int cant);
void vectormult(int factor, long *inicio, int cant);

int main(void){
int datacant;
int i;
long *inicio;


printf ("Ingrese la cantidad de datos a procesar\r\n");
scanf("%d",&datacant);
datacant = vectorcreate(&inicio,datacant);
vectormult(2,inicio,datacant);

for(i=0;i<datacant;i++){
printf("Valor multiplicado pro el factor: %d", inicio[i]);
}

free(inicio);
return(0);
}



int vectorcreate(long **inicio,int cant){
int i;

*inicio = (long*) malloc(cant * sizeof (long));

if(*inicio = NULL){
printf("%d",errno);
return(-1);
}

for(i=0;i<cant;i++){
printf("Ingrese los datos a procesar");
scanf("%ld", *(inicio+i));
}

return(cant);
}

void vectormult(int factor, long *inicio, int cant){

int i;

for(i=0;i<cant;i++){
inicio[i] = inicio[i] * factor;
}

}




En pastebin:

http://pastebin.com/E4SzXegd

(no se cuanto dure)


graciasss!

[Imagen: digitalizartransparent.png]
20-07-2011 20:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
Mensaje: #2
RE: Ayuda programa c - error de memoria


int vectorcreate(long **inicio,int cant){
int i;
*inicio = (long*) malloc(cant * sizeof (long));

if(*inicio == NULL){ //Faltaba un =
printf("%d",errno);
return(-1);
}

for(i=0;i<cant;i++){
printf("Ingrese los datos a procesar");
scanf("%ld", *inicio + i); //Al hacer *(inicio+i) estaba sumandole i al puntero a puntero, y no al puntero del vector
}

return(cant);
}



(Este mensaje fue modificado por última vez en: 20-07-2011 22:13 por Anirus.)
20-07-2011 22:13
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Feer Sin conexión
Presidente del CEIT
Ing. Electrónico
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.672
Agradecimientos dados: 601
Agradecimientos: 2.969 en 451 posts
Registro en: Apr 2010
Mensaje: #3
RE: Ayuda programa c - error de memoria
Ahí anda!
Muchas gracias Anirus!!!

[Imagen: digitalizartransparent.png]
20-07-2011 22:35
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rld Sin conexión
Secretario General
ლ(ಠ益ಠლ)
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 787
Agradecimientos dados: 9
Agradecimientos: 14 en 12 posts
Registro en: Nov 2010
Mensaje: #4
RE: Ayuda programa c - error de memoria
Un tip para evitar errores como este...poner:



...
if (NULL == *algo)
...




Si te falta un =, te va a saltar un error de l-value por estar tratando de asignarle un valor a una constante (Y)
Momento, iostream no es de C++? Y no es #include <iostream> sin el .h? gcc me tira cualquier cosa si lo trato de compilar, pero g++ anda bien...
(Este mensaje fue modificado por última vez en: 21-07-2011 00:23 por rld.)
21-07-2011 00:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
Mensaje: #5
RE: Ayuda programa c - error de memoria
(21-07-2011 00:15)rld escribió:  Un tip para evitar errores como este...poner:



...
if (NULL == *algo)
...




Si te falta un =, te va a saltar un error de l-value por estar tratando de asignarle un valor a una constante (Y)
Momento, iostream no es de C++? Y no es #include <iostream> sin el .h? gcc me tira cualquier cosa si lo trato de compilar, pero g++ anda bien...

Buena idea, yo SIEMPRE me equivoco en eso xD, es culpa de Pascal.
21-07-2011 00:55
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)