Jump to content
Fórum Script Brasil

Math_naVeia

Membros
  • Content Count

    14
  • Joined

  • Last visited

Community Reputation

0 Neutro

About Math_naVeia

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Math_naVeia

    Listas no Python

    Olá, pessoal. Estou começando a aprender python e tenho uma dúvida : qual a diferença de uma lista em python e um vetor em c++ ?
  2. Math_naVeia

    Listas

    Estou estudando listas encadeadas e vi que é uma lista dinâmica. Encontrei em alguns lugares as diferenças entre listas estáticas e dinâmicas, mas achei um tema bem difícil rs. Eu gostaria, se for possível, de um resuminho sobre lista estática sequencial e lista encadeada. Se for possível também colocar um exemplo bem simples de cada, inclusive o resumo em geral pode ser o mais simples possível. :)
  3. 1) Ok. 2) Veja se entendi...Uma estrutura de dados tem por objetivo armazenar dados, valores. Então como os ponteiros apenas guardam direções, quando faço esse pedaço de código struct horario { int *pHora; int *pMinuto; int *pSegundo; }; estou apenas criando variáveis que vão apontar onde estão esses dados, portanto os membros da estrutura são, na verdade, hora, minuto e segundo, onde os dados serão realmente armazenados. Correto ?
  4. 1) Quando eu faço isso : struct horario { int hora; int minuto; int segundo; }; struct horario agora; struct horario *Horarios; estou criando uma variável do tipo struct horario que se chama agora e, consequentemente, com os campos hora, minuto e segundo. Mas o ponteiro *Horarios é na verdade como qualquer ponteiro que guarda o endereço de uma outra variável, certo ? Ou seja, a instrução struct horario *Horarios; não quer dizer que está sendo criada uma variável do tipo struct horario com os campos hora, minuto e segundo, mas, na verdade, está sendo apenas criada uma variável que guarda um endereço de uma variável do tipo struct horario. É isso ? 2) Quando eu faço isso : struct horario { int *pHora; int *pMinuto; int *pSegundo; }; void main () { struct horario hoje; int hora = 12; int minuto = 30; int segundo = 58; hoje.pHora = &hora; hoje.pMinuto = &minuto; hoje.pSegundo = &segundo; cout << "Hora : " << *hoje.pHora << endl; cout << "Minuto : " << *hoje.pMinuto << endl; cout << "Segundo : " << *hoje.pSegundo << endl; } Os membros da estrutura são os ponteiros ( hoje.pHora, hoje.pMinuto, hoje.pSegundo ) ou são as variáveis apontadas por eles (hora, minuto, segundo) ?
  5. Agora entendi essa questão da definição. Obrigada :)
  6. Eu quero saber também uma coisa em relação a definição da struct no seguimento global / static. Se eu defino uma constante, acredito que ela ocupe um lugar na memória ( #define PI 3.14159265; ). E uma definição de struct, ocupa lugar na memória ?
  7. Muito obrigada! É muito difícil encontrar essas informações. Obrigada! :)
  8. Math_naVeia

    Struct

    Eu estava com uma dúvida sobre a disposição de membros de uma estrutura na memória. Por exemplo, um array tem um elemento ao lado do outro na memória, e eu queria saber como era isso com estruturas, se é igual ou se os membros estão em locais aleatórios. Então usei esse programa em c++ : #include <iostream> using namespace std; struct product { int weight; float price; }; product apple; int main () { cout << &apple << endl; cout << &apple.weight << endl; cout << &apple.price << endl; return 0; } E obtive a resposta : 0x804a0d0 0x804a0d0 0x804a0d4 Então os membros de uma estrutura ficam lado a lado na memória, né ? E o endereço do objeto se refere ao endereço do primeiro membro, certo ?
  9. Nossa! Valeu mesmo. Muito obrigada pela ajuda. :)
  10. 1) Não entendi essa questão de desligar o computador e ele "esquecer" da memory leak, o que seria "esquecer" ? Quando o computador é ligado, essa memória é realmente devolvida ? 2) Veja se eu eu entendi o que você disse. Funciona assim... conforme, por exemplo, eu vou chamado mais funções, vão sendo colocados mais escopos na pilha ( mais segmentos?! ) e quando chega no limite dessa memória padrão do stack, o sistema estaria pegando memória de outro segmento (outro escopo) se continuasse. É isso, né ? Agora o que não entendi é o seguinte : Eu li em algum site que na hora da compilação, o compilador já calcula toda a memória necessária a ser armazenada. Então, o erro não deveria aparecer na hora da compilação ? Ou seja, não deveria aparacer o erro de segmentação na hora da compilação do programa que tem uma função recursiva ? Esse programa que eu mostrei na mensagem anterior (da função recursiva) compilou normalmente, o erro só apareceu quando eu tentei executar o programa. 3) A dúvida principal mesmo de erro de segmentação é essa 2 acima, mas aconteceu algo estranho aqui kkkkkk Eu usei esse número 521133 e não deu problema. Só deu problema quando eu coloquei isso : int main() { int n[536870849]; return 0; } Desculpa deixar esse post longo haha mas é que eu estou aprendendo programação através de uma apostila, aí quando chegou nessa parte de como funciona e como é a estrutura da memória a apostila só ficou mostrando tópicos sem explicá-los.
  11. Nossa! Muito obrigada pela explicação. Eu não sabia dessa questão do Heap ser memória compartilhada. Agora... 1) Se eu não apagar essa memória alocada dinamicamente ela não é liberada nem quando acaba a execução do programa ? 2) E mais uma coisa... Aproveitando que você falou da quantidade de memória do stack, tenho uma dúvida sobre isso. Por exemplo, se eu faço esse programa : int main () { int function() { return function(); } return 0; } Vai dar segmentation fault na hora da execução pela questão da limitação do stack como você falou. Mas a minha dúvida é : no meu compilador tem uma quantidade de memória padrão no stack para qualquer código ? E sendo SIM como resposta, na hora da execução vai sendo colocada uma função em cima de outra (caracterizando uma pilha) até que alguma hora chega o limite dessa memória padrão ?
  12. Entendi, então eu tento criar algo no stack para dar nome a alguma variável alocada no heap (pois só posso dar nome no stack), e o jeito de fazer com que algo do stack se referira a uma variável do heap é usando um ponteiro. Seria isso ?
  13. Quando fazemos alocação dinâmica de memória, um ponteiro aponta para esse local na memória criado dinamicamente. Esse local será no heap, certo ? Mas o ponteiro estará no stack ?
×
×
  • Create New...