Estava pensando em vez de ficar usando malloc toda hora criar um macro em c.
#define new (x) ((x*) malloc (sizeof(x)))
Não deu muito certo heheh. Só por curiosidade queria saber se é possível fazer algo assim?
Estava pensando em vez de ficar usando malloc toda hora criar um macro em c.
#define new (x) ((x*) malloc (sizeof(x)))
Não deu muito certo heheh. Só por curiosidade queria saber se é possível fazer algo assim?
Ola
o seu problema parece ser aqui:
#define new(x) ((x*) malloc (sizeof(x)))
havia um espaço entre o new o e (x)
em algumas ideias aqui: http://vickychijwani.me/simplifying-memory-allocation-in-c/
eu vejo um problema que é: vc vai precisar desse define
a cada vez que precisar fazer um malloc
( talvez seja melhor vc criar o seu arquivo header ).
salvo engano, vc pode ter problemas extras se precisar debugar o seu codigo ( acho q vc precisa de alguma opção para expandir o new
) e, no fim das contas, vc esta obfuscando o seu codigo.
sem falar que seu codigo não podera ser compilado em C++ (existe uma compatibilidade) pois havera um clash entre a palavra reservada new e a macro new. se vc quer usar, talvez seja interessante chamar de ALLOC ou CREATE_OBJECT ou algo do tipo, que fique claro o que faz.
Era mais curiosidade mesmo, normalmente eu crio uma função para alocação que chama o malloc e verifica que ele é null.
Curiosidade:
Com Linux + Overcommit o malloc nunca falha.
Até pq existe coisas como o swap, então o que acontece é que se a sua aplicação utilizar muita memoria o OOM Killer vai la e mata o processo.