array y limite de array sobrepasado...

Iniciado por bash, 31 Enero 2017, 21:31 PM

0 Miembros y 1 Visitante están viendo este tema.

bash

Buenas a todos !!
tengo una duda sobre arreglos !!


tengo la siguiente estructura.


Código (cpp) [Seleccionar]
struct Tra{

  char b[8];
  char c[32];
};

...

int main(){

  Tra tr;
  memset(&tr, 0x00, sizeof(tr));
 
  strncpy(b, "123456789", 7);
  strncpy(c, "abecdefeghijklmnopqrstuvywz");

  cout << b <<endl;

}

Código (applescript) [Seleccionar]

salida : >> 123456789abecedefghi.....


me gustaria saber por que pasa eso con el valor de b si solo copio una cantidad especifica de caracteres en b?

nota : entiendo que c y c++ no tiene bound check .




el problema no es la compilacion ,esto lo edite rapido :D

pero al parecer no entendieron asi que me explicare , como cree esta estructura Tra
cree dos variable de tipo array a char , ambas con tamanos diferente , luego instancie un objeto de Tra en main , lo limpie ,luego le puse valores no importa que valor estos solo son ejemplo , luego lo imprimi solo el valor de la primera variable y la salida fue la mezcla de todos los valores de la variable c dentro de b , se que las estructura de array plano son como un super array pero por que salen todos los valore de c en b si solo copie cierta cantidad de char con strncpy?
gracias por responder mis dudas

engel lex

en tu codigo tienes errores para regalar... esto realmente compila en que compilador? no acostumbro a C, pero...

- el string de "c" no está cerrado (linea 15)
- usas las variables "b" y "c" sin declararlas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

dato000

Cita de: engel lex en 31 Enero 2017, 21:51 PM
en tu codigo tienes errores para regalar... esto realmente compila en que compilador? no acostumbro a C, pero...

- el string de "c" no está cerrado (linea 15)
- usas las variables "b" y "c" sin declararlas



no entiendo ni como compila eso.  :laugh: :laugh:



MAFUS

Ni siquiera compila. Supongo que se ha equivocado copiando el fuente.