[C con Clase] Problema con Cadena de caracteres concepto1[]

Ezequiel Hernan Di Giorgi hernan.digiorgi en gmail.com
Dom Sep 16 14:40:10 CEST 2012


Mmmm... hay algo raro en todo esto. Estas declarando concepto[], que es un
array de ¿CUANTOS elementos?  En linux con el CC te los toma como un array
de un solo elemento. Pero se me hace que estas trabajando en windows. Y que
te toma todos esos arrays que apuntan a un mismo puntero osea
concepto1=concepto2=concepto3. De igual modo segun mi punto de vista,
estarias guardando caracteres en espacio de memoria que no te pertenece.
Windows te deja hacer ese tipo de cosas sin darte un hermoso segmentation
fault, en algunos casos.
Incluso windows te deja modificar las funciones si las tratatas como un
array de chars... jejeje me voy de tema.

La solucion para mi seria

char concepto1[50];
char concepto2[50];
char concepto3[50];

yo puse 50, pero basicamente es el tamaño que quieras. Mira yo hice esto,
en mi programita.
*EN C, OSEA USANDO EL CC.*

#include <stdio.h>
#include <stdlib.h>

char string0[];
char string1[];
char string2[];

int main ()
{
printf ("\n%p\n%p\n%p\n",string0,string1,string2);
 exit(EXIT_SUCCESS);
}


al compilar me dio

$ cc main.c
main.c:4:6: warning: array ‘string0’ assumed to have one element [enabled
by default]
main.c:5:6: warning: array ‘string1’ assumed to have one element [enabled
by default]
main.c:6:6: warning: array ‘string2’ assumed to have one element [enabled
by default]
ezequiel en ghost:~/projects$ ./a.out

0x601039
0x601038
0x60103a
ezequiel en ghost:~/projects$


*mientras que en C++* no compila osea usando el g++

$ g++ main.c
main.c:4:14: error: storage size of ‘string0’ isn’t known
main.c:5:14: error: storage size of ‘string1’ isn’t known
main.c:6:14: error: storage size of ‘string2’ isn’t known


---------
Cuando alguien hace char  cosa[]="HOLA MUNDO"; el compilador tan
inteligente se fija el tamaño que debe tener el array para contenerlo.


(:
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120916/6f04918a/attachment.html>


Más información sobre la lista de distribución Cconclase