Funcao criaImagem

Funcao criaImagem

por Paolo Menezes Carrara -
Número de respostas: 4
Estou com um problema na funcao criaImagem, pois quando a utilizo recebo um warning: "function returns adress of local variable", e meu programa nao roda. Quando crio as imagens dentro da main meu programa funciona normalmente e ja estaria pronto para entregar. Minha duvida é, como implementar essa funcao, pois sei que seu eu criar uma estrutura dentro de uma funcao esta sera perdida no termino da funcao que a contem. Uso Ubuntu 12.04
Em resposta à Paolo Menezes Carrara

Re: Funcao criaImagem

por Claynon Souza -

Acredito que você está criando uma variavel do tipo Imagem e retornando seu endereço. Se for isso essa variável será "eliminada" ao final da função, ou seja, a função retornará endereço para lixo e isso vai dar problema.

Para criar uma estrutura que não será destruida ao final de uma função criamos um ponteiro e então alocamos memória para esse ponteiro. No final da função o ponteiro será destruído mas não a memória alocada, essa memória nós retornamos na função (claro que se não retornarmos esse espaço de memória ele estará desreferenciado e então não conseguiremos acessá-lo, ele será pior que inútil por não ser acessável, pois estará ocupando nossa valiosa memória).

Em resposta à Paolo Menezes Carrara

Re: Funcao criaImagem

por José Coelho de Pina -

Legal! Só complementando.

function returns adress of local variable

Nas anotações da aula 9, logo no ínicio, há duas implementações erradas.
Numa delas é exatamente este o problema.