Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

José Enésio

Struct + string

Recommended Posts

Fala gurizada!!!

To preparando um programinha aqui bem legalzinhow!!!

Só quero saber uma coisa: a forma correta de ter uma string em uma estrutura. Não quero que dê memory leaks ou o escambal. Saca só o contexto é assim:

 

typedef struct _meu
{
	char* nome; // aqui quero que aponte para uma string
	int blablabla;
	MeuObjeto* etcetcetc;
	//etc
} meu;

//......

meu* inicializa(char* nome)
{
	meu* novo = new meu; //estou fazendo em C++!!
	novo->blablabla = 0;
	novo->etcetcetc = new MeuObjeto(1,2,3,4); //exemplo...
	novo->nome = nome; //E AGORA??? X_X
}

O que quero saber são duas coisas:

1. desse jeito acho que iria dar memory leak ou não? tipo se eu inicializar

meu* eu = inicializa("juzé enésium");

2. to usando isso com um contexto de arrays redimensionáveis de ponteiros. Portanto, depois vou querer adicionar mais objetos no meio, e como sou burro de padeiro só conheço o caminho do realloc, to usando ele e não deu problema. A moral é, como vou fazer pra realocar depois? Será que só alocar o tamanho da struct normal (sizeof(meu) * (contagem + 1)) funciona sem dar merlin??

 

Valeu gurizada, conto com vocês aí pra me ajudar que esse programinha aqui vou postar nos tutoriais e vai ser uma mão na roda pra quem quer programar aqueles programinhas em janelas no windows!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é C++!!! Use a API!!!

 

 

class meu {
string nome;
int blablabla;
MeuObjeto etcetcetc;

public meu(string argNome) {
	 blablabla = 0;
	 nome = argNome;
	 etcetcetc = new MeuObjeto(1,2,3,4);
}
};

 

Ao invés de ficar usando arrays de C procure por vector.

 

 

memory leaks são causados quando você não libera os pedaços de memória alocados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu titia isis!!

 

kk

Não sou muito chegado nessas tais APIs do C++ aí sou meio cabeça dura mas vou tentar usar! :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.