Autor Tema: valores por defecto de un buffer declarado  (Leído 1354 veces)

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

Desconectado micronet3

  • PIC18
  • ****
  • Mensajes: 288
valores por defecto de un buffer declarado
« en: 05 de Enero de 2018, 12:08:04 »
saludos

una consulta he declarado una variable en ccs

int buffer[45];

me gustaria saber si los valores de cada elemento del buffer inicialmente valen cero o todo es aleatorio

gracias

atte
Micronet

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:valores por defecto de un buffer declarado
« Respuesta #1 en: 05 de Enero de 2018, 12:17:31 »
Eso es una variable no incializada, por lo cual el compilador no tiene ningun deber de ponerlo a 0 y por lo tanto su valor es indeterminado.

Podrias pensar que gracias a que esta en la RAM y al ocurrir un POR ( encendido del PIC ) la RAM pierde sus valores y comienza con 0x00, pero si hay alguna especie de reset donde la RAM no se borra, estarias asumiendo algo erroneo.

En fin, es tu deber asumir que esa variable al comienzo posee cualquier cosa.
Podrias usar un memset() para ponerlo a 0 a ese buffer, o sino me equivoco CCS provee una directiva de preprocesamiento que obliga al compilador poner a 0 todas las variables.

Copio y pego del manual de CCS:

Citar
#ZERO_RAM
Purpose: This directive zero's out all of the internal registers that may be used to hold variables before program execution begins.
« Última modificación: 05 de Enero de 2018, 12:20:15 por KILLERJC »

Desconectado micronet3

  • PIC18
  • ****
  • Mensajes: 288
Re:valores por defecto de un buffer declarado
« Respuesta #2 en: 05 de Enero de 2018, 20:34:13 »
gracias KILLERJC ((:-)) ((:-)) ((:-)) ((:-))


 

anything