¿Nadie?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menútypedef struct Matriz{
int f;
int c;
double **m;
}tMatriz;
int main()
{
//Variables
FILE *fichero;
tMatriz *matriz;
char nombre[15];
int cantidad;
int i;
/****************************/
printf("Nombre del fichero: ");
gets(nombre);
if( (fichero= fopen(nombre, "rb") ) == NULL )
{
printf("\nEl fichero no existe. El programa se cerrará...");
Sleep(2500);
exit(1);
}
matriz = (tMatriz*) malloc( 20 * sizeof(tMatriz) );
matriz->m = (double**) malloc( 20* sizeof(double*) );
for(i=0; i < 20; i++)
matriz->m[i] = (double*) malloc( 20* sizeof(double) );
cantidad= fread(matriz, sizeof(tMatriz), 20, fichero);
printf("%d\n", cantidad); //9
printf("%d\t%d", matriz->c, matriz->f); //Basura
fflush(stdin);
getchar();
return 0;
}
LISTA *meterElementoOrdenado(int num, LISTA *lista)
{
LISTA *nodo_aux, *inicio;
int cont = 1;
inicio = lista;
nodo_aux = (LISTA*) malloc( sizeof(LISTA) );
if(nodo_aux == NULL)
printf("\nNo hay sitio para mas elementos...\n");
if(lista == NULL)
{
nodo_aux->numero = num;
nodo_aux->siguiente = NULL;
return nodo_aux;
}
else
{
do
{
if(num < lista->numero)
{
nodo_aux->numero = num;
nodo_aux->siguiente = lista->siguiente;
lista->siguiente = nodo_aux;
cont = 0;
}
lista = lista->siguiente;
}while( (lista != NULL) && (cont != 0) );
nodo_aux = inicio;
return nodo_aux;
}
}
void ejecutarOpcion(LISTA *lista, int opcion);
typedef struct lista{
int numero;
struct lista *siguiente;
}LISTA;
LISTA *crearLista(int num)
{
LISTA *lista;
lista = (LISTA*) malloc( sizeof(LISTA) );
lista->numero= num;
lista->siguiente= NULL;
return lista;
}
LISTA *anyadirElementoAlPrincipio(int num, LISTA *lista)
{
LISTA *nodo_nuevo;
nodo_nuevo= (LISTA*) malloc( sizeof(LISTA) );
if(nodo_nuevo == NULL)
printf("\nNo hay sitio para más números.\n");
else
{
nodo_nuevo->numero = num;
nodo_nuevo->siguiente= lista;
}
return nodo_nuevo;
}
void mostrarLista(LISTA *lista)
{
printf("%d\n", lista->numero);
if(lista->siguiente != NULL)
mostrarLista(lista->siguiente);
}
Cita de: x64Core en 29 Marzo 2013, 18:09 PMSí, lo he probado con más de un compilador.
Estas seguro que esa es la salida de ese codigo?
Recordar que haces un pos incremento.
#include <stdio.h>
#define MAXLINE 60
int main()
{
char *ptr;
ptr = (char*) malloc(MAXLINE * sizeof(char) );
printf("Introduce una frase: ");
fgets(ptr, MAXLINE+1, stdin);
printf("\n%p = %c", ptr,*ptr);
ptr++;
printf("\n%p = %c", ptr, *ptr);
printf("\n\n%p %p", ptr, ptr++);
getchar();
return 0;
}
Cita de: avesudra en 26 Marzo 2013, 20:25 PM
Fíjate en esta sentencia:palabras[i] = '\0';
¿A qué le estás asignando el carácter nulo, al array de caracteres o al array de punteros?
void copiarPalabras(char *string, char *palabras[]);
{
int i = 0;
//Para las primeras 10 letras, por ejemplo
palabras[0] = (char*) malloc(10 * sizeof(char) );
while( *(string+ i) != ' ' ) //Copiamos la primera palabra de la frase
{
*(palabras[0] + i) = *(string+ i);
i++;
}
palabras[i] = '\0';
}