Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/05/2010, 04:39
nestor1991ag
 
Fecha de Ingreso: abril-2010
Mensajes: 13
Antigüedad: 14 años, 7 meses
Puntos: 0
Funciones malloc, realloc y calloc


Hola a todos, este es mi segundo ejercicio con malloc, realloc y calloc y no consigo saber porque me dan estos errores, lo que intentado un buen tiempo, he buscado, pero ni por esas.
Y no estoy seguro de que me de el objetivo que yo quiero.
Por favor, si alguien me puede echar una luz en esta oscuridad estaría muy agradecido.

Código c:
Ver original
  1. //Ejercicio 49. Diseña un programa que almacene números reales leídos
  2. //de teclado en un bloque de memoria. El bloque tendrá en cada momento
  3. //el tamaño exacto para albergar la cantidad de números leídos.
  4. //Al leerse un número mayor de 1000 se finalizará la lectura,
  5. //incluyéndose este último en la última posición del bloque.
  6. //Al final se visualizarán en pantalla los números leídos mayores de 100
  7. #include <stdio.h>
  8. #include <conio.h>
  9. #include <malloc.h>
  10. #include <stdlib.h>
  11.  
  12. void main()
  13. {
  14.     int n=0, *bloque, posicion=0, empezar=0, aux;
  15.  
  16.  
  17.     while (n<=1000)
  18.     {
  19.         printf ("Dime un numero\n");
  20.         scanf ("%d", &n);
  21.  
  22.         if (empezar==1)
  23.         {
  24.             bloque=(int *)realloc(sizeof(float)*posicion;
  25.             posicion++;
  26.         }
  27.  
  28.         if (empezar==0)
  29.         {
  30.             empezar++;
  31.             bloque=(int *)malloc(sizeof(float)*posicion;
  32.             posicion++;
  33.         }
  34.  
  35.         bloque=(int *)realloc(sizeof(float)*posicion;
  36.         aux=posicion;
  37.  
  38.         posicion=0;
  39.         for (posicion=0; posicion<=aux; posicion++)
  40.         {
  41.             if ((bloque=(int *)realloc(bloque,posicion))>>100)
  42.             {
  43.                 printf ("&d\n", bloque);
  44.             }
  45.         }
  46.     }
  47.  
  48.     getch();
  49. }
  50.  
  51. //Errores de compilacion:
  52. 1>------ Operación Generar iniciada: proyecto: 5Ejercicio49, configuración: Debug Win32 ------
  53. 1>Compilando...
  54. 1>5Ejercicio49.cpp
  55. 1>d:\nestor\a.s.i\programación\ejercicios2\5ejercicio49\5ejercicio49\5ejercicio49.cpp(20) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  56. 1>        c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(306) : vea la declaración de 'scanf'
  57. 1>d:\nestor\a.s.i\programación\ejercicios2\5ejercicio49\5ejercicio49\5ejercicio49.cpp(24) : error C2143: error de sintaxis : falta ')' delante de ';'
  58. 1>d:\nestor\a.s.i\programación\ejercicios2\5ejercicio49\5ejercicio49\5ejercicio49.cpp(24) : error C2660: 'realloc' : la función no acepta 1 argumentos
  59. 1>d:\nestor\a.s.i\programación\ejercicios2\5ejercicio49\5ejercicio49\5ejercicio49.cpp(31) : error C2143: error de sintaxis : falta ')' delante de ';'
  60. 1>d:\nestor\a.s.i\programación\ejercicios2\5ejercicio49\5ejercicio49\5ejercicio49.cpp(35) : error C2143: error de sintaxis : falta ')' delante de ';'
  61. 1>d:\nestor\a.s.i\programación\ejercicios2\5ejercicio49\5ejercicio49\5ejercicio49.cpp(35) : error C2660: 'realloc' : la función no acepta 1 argumentos
  62. 1>d:\nestor\a.s.i\programación\ejercicios2\5ejercicio49\5ejercicio49\5ejercicio49.cpp(41) : warning C4293: '>>' : recuento de desplazamientos negativo o demasiado grande; comportamiento impredecible
  63. 1>d:\nestor\a.s.i\programación\ejercicios2\5ejercicio49\5ejercicio49\5ejercicio49.cpp(41) : error C2296: '>>' : no es válido; el operando izquierdo es de tipo 'int *'
  64. 1>El registro de compilación se guardó en el "file://d:\Nestor\A.S.I\Programación\EJERCICIOS2\5Ejercicio49\5Ejercicio49\Debug\BuildLog.htm"
  65. 1>5Ejercicio49 - 6 errores, 2 advertencias
  66. ========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========