You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Já na estrutura está lá "char *", depois tu metes lá um valor, mas ninguém te garante que o espaço alocado para esse char * é suficiente para a tua string... como é que se assegura que o espaço para a string é reservado?
nunca percebi essa cena...
The text was updated successfully, but these errors were encountered:
Assim de repente temos 2 hipóteses. Declarar o tamanho do array na estrutura de dados não permitindo nomes de localidades para além daquele limite ou então fazer uma função que leia um máximo de 1000 caracteres do teclado, calcula o tamanho do array e faz-se um malloc(sizeof((n+1)*char) para guardar o nome no char * nome.
declarar tamanho fixo: é limitador se o nome tiver muitas letras, usa memória a mais porque vamos alocar imagine-se 100 caracteres e ter localizações que têm nomes com 10 caracteres... por outro lado é mais rápido de criar/modificar/destruir.
ajustar ao tamanho: é óptimo em termos de memória, pois só vamos ocupar mesmo o que precisamos. mas exige mais do processador quando for a criar/modificar/substituir.
O malloc parece-me melhor. se definires tamanho fixo tens sempre a limitação e tens sempre a memória ocupada com lixo que sobrou da string. com o malloc é mais demorado criar/modificar/substituir, mas fica impec em termos de memória.
Já na estrutura está lá "char *", depois tu metes lá um valor, mas ninguém te garante que o espaço alocado para esse char * é suficiente para a tua string... como é que se assegura que o espaço para a string é reservado?
nunca percebi essa cena...
The text was updated successfully, but these errors were encountered: