Olá galera, eu tava estudando aqui e acabou me surgindo uma dúvida...
Compilem esse programa:
#include <stdio.h>
#define DIM 20
int main(void) {
int i, semlixo[20] = {1, 2, 3}, comlixo[20];
comlixo[0] = 1;
comlixo[1] = 2;
comlixo[2] = 3;
printf("Sem lixo: \n");
for(i = 0 ; i < DIM ; i++){
printf("%d\n", semlixo[i]);
}
printf("\n\nCom lixo: \n");
for(i = 0 ; i < DIM ; i++){
printf("%d\n", comlixo[i]);
}
}
Eu percebi que quando você inicializa com chaves o vetor ele tira o "lixo" que fica na memória das posições que você não usou, diferente do que aconteceu com o vetor "comlixo", que inicializei 3 posições sem usar chave e acabou que as outras posições continuaram com lixo.
Aparentemente, isso serve para qualquer tipo, se vocês trocarem o tipo int pra char verão que onde foi inicializado com chave, as posições não ocupadas são preenchidas com espaço vazio.
Alguém sabe me explicar por que isso acontece?
Compilem esse programa:
#include <stdio.h>
#define DIM 20
int main(void) {
int i, semlixo[20] = {1, 2, 3}, comlixo[20];
comlixo[0] = 1;
comlixo[1] = 2;
comlixo[2] = 3;
printf("Sem lixo: \n");
for(i = 0 ; i < DIM ; i++){
printf("%d\n", semlixo[i]);
}
printf("\n\nCom lixo: \n");
for(i = 0 ; i < DIM ; i++){
printf("%d\n", comlixo[i]);
}
}
Eu percebi que quando você inicializa com chaves o vetor ele tira o "lixo" que fica na memória das posições que você não usou, diferente do que aconteceu com o vetor "comlixo", que inicializei 3 posições sem usar chave e acabou que as outras posições continuaram com lixo.
Aparentemente, isso serve para qualquer tipo, se vocês trocarem o tipo int pra char verão que onde foi inicializado com chave, as posições não ocupadas são preenchidas com espaço vazio.
Alguém sabe me explicar por que isso acontece?
Comment