Donar $20 Donar $50 Donar $100 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
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.490 en 411 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: 77
Agradecimientos: 194 en 69 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
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.490 en 411 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: 10 en 9 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: 77
Agradecimientos: 194 en 69 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)



    This forum uses Lukasz Tkacz MyBB addons.