He intentado aplicar lo q me enseñaste haciendo un hay cosas q no me funcionan.
Código:
#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
void main()
{
char* d=(char*)malloc(sizeof(char)*8);
*d="ola";
cout<<"es"<<*d;
}
En este por ej, no me imprime la cadena "ola". No se puede utilizar asi un puntero? Hay que meter antes la cadena "Ola" en un array?
O en este otro.
Código:
#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
void main()
{
char* d=(char*)malloc(sizeof(char)*8);
char cad[10]="ola";
d=cad; //guardamos en el puntero d la direc. de memoria del primer elem. del //array
cout<<*d;//imprimimos la cadena
getchar();
}
SI lo pongo asi, me devuelve solo el primer caracter de ola. O tb cuando hago:
char* d=(char*)malloc(sizeof(char)*8);
gets(d);
cout<<"es"<<*d;
Tb me devuelve el 1 caracter. Sin embargo cuando pongo "cout<<d" me devuelve la cadena entera.(en este ultimo me sigue devolviendo solo un caracter). Lo q no entiendo es por se pone entonces cout<<p; si p es una direccion de memoria, no el valor de la direccion de memoria a la k apunta el puntero.
Y este otro englobando funciones y punteros, como puse al principio, pero mejorado, bueno mejorado es un decir, pero al menos lo intente xD.
Código:
#include<stdio.h>
#include<stdlib.h>
char funcion(char *e);
void main()
{
char cad[10];
gets(cad);
printf("es %c",funcion(&c);
}
funcion(char *e)
{
char* j=(char*) malloc(sizeof(char)*10);
char cad2[10]="xxx";
j= strcat(e,cad2);
return *j;
}
Trato de imprimir el valor de la cadena q apunta el puntero de retorno de la funcion. "printf("es %d",funcion(&c,&d); " Se llama asi a la funcion? En la funcion trato de sumar las 2 cadenas.
Saludos.