te-x
Power Member
Olá, estou a fazer um trabalho e numa das funções que fiz tenho um argumento que é um ponteiro, que vai servir como argumento de saída.
A função é suposto carregar informação do disco, alocá-la em memória e a esse tal argumento de saída é atribuído o valor do endereço em que ficou a informação. Com uns prints espalhados pelo programa consegui ver que está tudo a funcionar bem, o valor é bem atribuido dentro da função mas cá fora o ponteiro fica com o valor 0. Não estou a conseguir perceber porque. Fica aqui o código que me parece relevante:
A função é suposto carregar informação do disco, alocá-la em memória e a esse tal argumento de saída é atribuído o valor do endereço em que ficou a informação. Com uns prints espalhados pelo programa consegui ver que está tudo a funcionar bem, o valor é bem atribuido dentro da função mas cá fora o ponteiro fica com o valor 0. Não estou a conseguir perceber porque. Fica aqui o código que me parece relevante:
Código:
int main() {
[...]
DataType* pointer;
if( (stat = func(n, pointer)) != 0)
return stat;
printf("%d", pointer); //---> imprime 0
[...]
}
int func(int n, DataType* p) {
[
//Load data to memory
]
p = &loadedMem;
printf("%d", p); //imprime bem (134558752)
return 0;
}
Última edição: