Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola, quisiera que me recomendarais algun programa, gratuito si es posible, para compilar y programar en c, y saber si se puede hacer programas en c, que ademas de escribir texto en pantalla pueda manejar graficos, crear entorno grafico propio y similares (como los entornos graficos de un videojuego) y como se puede programar que se muestren imagenes en pantalla con c. Igualmente agradeceria cualquier referencia a manuales lo mas completos posibles sobre programacion en c, preferiblemente en castellano.
Gracias por cualquier ayuda que me podais ofrecer.
prueba a hacer una lista dinámica.
Basicamente lo hice intentando hacer una lista dinamica, intente hacer un array con direcciones de memoria pero despues no se porque no me dejaba usar los elementos del array como punteros.
Me da que tienes un "cacao" mental de tres pares de narices. No es por meterme, pero cuando programas en C, me parece que estás programando en algo diferente a lo que yo saqué un 9 en la uni 😕 . Te dejo un ejemplo del señor google en el que se ve de manera sencilla cómo manejar punteros:
#include<stdio>
#include<conio>
void main(){
int m[10][10];
int (*p)[10];
m[4][5] = 123;
p = &m[0];
clrscr();
printf("m[4][5] --> %in", m[4][5]);
printf("p[4][5] --> %in", p[4][5]);
printf("(*(p+4))[5]--> %i", (*(p+4))[5]);
getch();
}
#include <stdio>
#include <conio>
#include <string>
#include <stdlib>
int main(void)
{
void *reservas[11] ;
(reservas) = calloc(11, sizeof(int)) ;
*reservas[0]=1 ;
return 0;
}
Probe el codigo pero me da error en la linea de "(reservas) = calloc(11, sizeof(int)) ;": 8 D:Documents and SettingsJesusMis documentosprueba.cpp incompatible types in assignment of `void*' to `void*[11]' .
Probe sustituir (reservas) por reservas[0] y dejo de dar error en esa linea y dio error en la siguiente "*reservas[0]=1 ;": 8 D:Documents and SettingsJesusMis documentosprueba.cpp incompatible types in assignment of `void*' to `void*[11]' .
He intentado cambiar el codigo de varias formas y no se que es lo que falla.
Gracias por la ayuda.
Me da que tienes un "cacao" mental de tres pares de narices. No es por meterme, pero cuando programas en C, me parece que estás programando en algo diferente a lo que yo saqué un 9 en la uni 😕 . Te dejo un ejemplo del señor google en el que se ve de manera sencilla cómo manejar punteros:
#include<stdio>
#include<conio>
void main(){
int m[10][10];
int (*p)[10];
m[4][5] = 123;
p = &m[0];
clrscr();
printf("m[4][5] --> %in", m[4][5]);
printf("p[4][5] --> %in", p[4][5]);
printf("(*(p+4))[5]--> %i", (*(p+4))[5]);
getch();
}
El codigo funciona bien, aunque lo que yo intentaba no era hacer un puntero para acceder a los miembros de un array que guarde numeros enteros, sino que lo que intentaba era hacer un array que guardara punteros, direcciones de memoria, para despues usar cada miembro del array para usar el puntero.
¿y qué crees que hace "p"?
int (*p)[10]; ' Declara un array para punteros
p = &m[0] ' Guarda la dirección en p de m[0]
Lo que hace el código que te paso es guardar en p la primera dirección del array m, y luego enseña cómo recoger datos de forma "normal" o utilizando los punteros:
printf("(*(p+4))[5]--> %i", (*(p+4))[5]);
O por lo menos eso creo yo, hace ya tiempo que no uso punteros 🙄
Deberías de estandarizar más tu código y ver ejemplos en el señor google que hay a patadas.