Ir para conteúdo

POWERED BY:

Arquivado

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

daya

Problemas com variaveis long

Recommended Posts

Boa tarde pessoal!!!!!

 

estou tendo problemas nesse codigo:

void gravaConf(char *sConf)
{
	FILE *fp;
	char *linhaTemp, *aux;
	long int linhaIni,linhaFim;
	long int i;

	aloca(&linhaTemp,25);
	aloca(&aux,7);

	//Busca linha inicial no temp
	if((fp=fopen("TEMP","r"))!=NULL)
	{
		fseek(fp, posTMP,SEEK_SET);
		fread(linhaTemp,25,1, fp);

		sprintf(aux,"%.6s",linhaTemp+7);
		linhaIni = atoi(aux);

		fread(linhaTemp,25,1, fp);
		sprintf(aux,"%.6s",linhaTemp+7);
		linhaFim = atol(aux);
	}
	fclose(fp);

	if(linhaIni>=linhaFim)
	{
		if((fp=fopen("PEDIDO.TXT","r"))!=NULL)  //pega última linha do pedido.
		{
			fseek(fp,0,SEEK_END);
			linhaFim = ((ftell(fp))/118);
		}
		fclose(fp);
	}

	// atualiza os itens do pedido
	if((fp=fopen("PEDIDO.TXT","r+"))!=NULL)
	{
		for(i=linhaIni;i<linhaFim;++i)
		{
			fseek(fp, (i * 119)+116,SEEK_SET);
			fwrite(sConf,1,1, fp);
		}
	}
	fclose(fp);

	free(linhaTemp);
	free(aux);

	gravaConfTMP(sConf);
}

se eu declarar o "i" apenas como int ele da estouro de variavel e se declarar como long pega sujeira da memória, alguém teria alguma solução para isso?

 

 

desde já obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisamente, qual o erro que dá ao você declarar como int?

E ao declarar como long?

 

As vezes o SIGSEGV não é por causa de integers.

Tentou declarar como "unsigned int"?

 

em que linha ocorre o erro?

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.