<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
<DIV>Bueno, pues si, estoy en Windows <IMG
style="BORDER-BOTTOM-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none"
class="wlEmoticon wlEmoticon-smile" alt=Sonrisa
src="cid:E678370668EB49EC8D9768573DE5D903@MasterPC"></DIV>
<DIV> </DIV>
<DIV>No estoy trabajando con punteros en mi programa.</DIV>
<DIV>No declaré el tamaño por que imaginaba que al no definir tamaño podría
rellenarlo con los caracteres que yo quisiese al y que él se cogiese los bytes
que fuesen necesarios. De todas formas no quería declarar un array, si no una
cadena.</DIV>
<DIV> </DIV>
<DIV>Ya da igual, lo solucioné de otra manera el problema (ver correo mandado a
la lista de programilla con su código de fuente de control de gastos)</DIV>
<DIV> </DIV>
<DIV>Básicamente tuve que darle un tamaño si, aunque no es lo que quería.</DIV>
<DIV> </DIV>
<DIV>Un saludo.</DIV>
<DIV> </DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
<DIV style="FONT: 10pt tahoma">
<DIV> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=hernan.digiorgi@gmail.com
href="mailto:hernan.digiorgi@gmail.com">Ezequiel Hernan Di Giorgi</A> </DIV>
<DIV><B>Sent:</B> Sunday, September 16, 2012 2:40 PM</DIV>
<DIV><B>To:</B> <A title=cconclase@listas.conclase.net
href="mailto:cconclase@listas.conclase.net">Lista de correo sobre C y C++</A>
</DIV>
<DIV><B>Subject:</B> Re: [C con Clase] Problema con Cadena de caracteres
concepto1[]</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">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.
<DIV>Incluso windows te deja modificar las funciones si las tratatas como un
array de chars... jejeje me voy de tema.</DIV>
<DIV> </DIV>
<DIV>La solucion para mi seria</DIV>
<DIV> </DIV>
<DIV>char concepto1[50];</DIV>
<DIV>char concepto2[50];</DIV>
<DIV>char concepto3[50];</DIV>
<DIV> </DIV>
<DIV>yo puse 50, pero basicamente es el tamaño que quieras. Mira yo hice esto,
en mi programita.</DIV>
<DIV><B>EN C, OSEA USANDO EL CC.</B></DIV>
<BLOCKQUOTE
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 40px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0px">
<DIV>
<DIV>#include <stdio.h></DIV></DIV>
<DIV>
<DIV>#include <stdlib.h></DIV></DIV>
<DIV>
<DIV> </DIV></DIV>
<DIV>
<DIV>char string0[];</DIV></DIV>
<DIV>
<DIV>char string1[];</DIV></DIV>
<DIV>
<DIV>char string2[];</DIV></DIV>
<DIV>
<DIV> </DIV></DIV>
<DIV>
<DIV>int main ()</DIV></DIV>
<DIV>
<DIV>{</DIV></DIV>
<DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN></DIV>printf
("\n%p\n%p\n%p\n",string0,string1,string2);</DIV>
<DIV>
<DIV><SPAN style="WHITE-SPACE: pre"
class=Apple-tab-span></SPAN></DIV>exit(EXIT_SUCCESS);</DIV>
<DIV>
<DIV>}</DIV></DIV></BLOCKQUOTE>
<DIV> </DIV>
<DIV>al compilar me dio</DIV>
<DIV> </DIV>
<BLOCKQUOTE
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 40px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0px">
<DIV>
<DIV>$ cc main.c</DIV></DIV>
<DIV>
<DIV>main.c:4:6: warning: array ‘string0’ assumed to have one element [enabled
by default]</DIV></DIV>
<DIV>
<DIV>main.c:5:6: warning: array ‘string1’ assumed to have one element [enabled
by default]</DIV></DIV>
<DIV>
<DIV>main.c:6:6: warning: array ‘string2’ assumed to have one element [enabled
by default]</DIV></DIV>
<DIV>
<DIV>ezequiel@ghost:~/projects$ ./a.out</DIV></DIV>
<DIV>
<DIV> </DIV></DIV>
<DIV>
<DIV>0x601039</DIV></DIV>
<DIV>
<DIV>0x601038</DIV></DIV>
<DIV>
<DIV>0x60103a</DIV></DIV>
<DIV>
<DIV>ezequiel@ghost:~/projects$ </DIV></DIV></BLOCKQUOTE>
<DIV> </DIV>
<DIV><B>mientras que en C++</B> no compila osea usando el g++</DIV>
<DIV> </DIV>
<BLOCKQUOTE
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 40px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0px">
<DIV>
<DIV>$ g++ main.c</DIV></DIV>
<DIV>
<DIV>main.c:4:14: error: storage size of ‘string0’ isn’t known</DIV></DIV>
<DIV>
<DIV>main.c:5:14: error: storage size of ‘string1’ isn’t known</DIV></DIV>
<DIV>
<DIV>main.c:6:14: error: storage size of ‘string2’ isn’t
known</DIV></DIV></BLOCKQUOTE>
<DIV> </DIV>
<DIV>---------</DIV>
<DIV>Cuando alguien hace char cosa[]="HOLA MUNDO"; el compilador tan
inteligente se fija el tamaño que debe tener el array para contenerlo. </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>(:</DIV>
<P>
<HR>
_______________________________________________<BR>Lista de correo Cconclase
Cconclase@listas.conclase.net<BR>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<BR>Bajas:
http://listas.conclase.net/index.php?gid=2&mnu=FAQ</DIV></DIV></DIV></BODY></HTML>