Pointers em C

O problema eh ke o free... n o posso usar na funçao, tenho que o usar dps de usar o valor...tipo na main ou assim...as tantas fka um granda molho com uns free's la pendurados....
 
Só uma coisa, o máx de caracteres que str1 tem é 30? É que se não for devias fazer o malloc com sizeof(char)*strlen(str1) em vez de 30 ou arriscas-te a SEGFAULT's.
Outra coisa, se o from puder ser 0, aconselhava-te a fazer um if do tipo...
Código:
if ( from == 0) 
   strncpy(str1,rstr,strlen(str1)); //tou a fazer de cabeça
else
    for(...)...
Previne ciclos desnecessários.

Bem visto.

Obrigado
 
Sim, não te preocupes com o free para agora, pois és o programador da função. Porém se fosse para implementar num programa a sério... fora da função o free deveria ser chamado quando a variável não fosse mais precisa. :)

Previne ciclos desnecessários.
Nem por isso, pois a função strncpy deve estar programada da mesma maneira que esta. Antes pelo contrário, perdes performance pelo if feito. Mas isto são mariquices. :)
 
Última edição:
O problema é que tenho um trabalho de algoritmos e estruturas de dados 2, e n convem andar a espalhar burakos na memoria lol

Obrigado
 
Nem por isso, pois a função strncpy deve estar programada da mesma maneira que esta. Antes pelo contrário, perdes performance pelo if feito. Mas isto são mariquices. :)

Não está.
Os *cpy funcionam com endereços, ou seja copiam-te blocos completos de memória, já para não falar que ao estares a fazeres ciclos e etc existe uma quantidade muito maior de trocas de informação e acessos do que utilizando essas funções especificas da libc.
 
Back
Topo