Ir para conteúdo

Arquivado

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

Peixoto

Uso da função calloc() etc.

Recommended Posts

:( Vejam o códido abaixo:

#include <stdio.h> #include <stdlib.h>	 /* Para usar calloc() */ main (void) { 		int *p; 		int a;		int i; /* Determina o valor de a em algum lugar */		p=  calloc(a,sizeof(int));			  /* Aloca a números inteiros 												   p pode agora ser tratado como													um vetor com a posicoes/		if (!p) 		{ 				printf ("** Erro: Memoria Insuficiente **"); 				exit; 		} 		for (i=0; i<a; i++)			/* p pode ser tratado como um vetor com a										 posicoes */				p[i] = i*i; 				return 0; }
Quando rodo este código, recebo a seguinte messagem:

Este programa executou uma operação ilegal será fechado

Onde está o erro ? poderia modificar o programa para que ele use a função calloc() corretamete ?Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem

p=  calloc(a,sizeof(int));			  /* Aloca a números inteiros												   p pode agora ser tratado como													um vetor com a posicoes/
Aqui faltou fechar um comentário.

 

Depois o problema pode ser que o a não tem nenhum valor, então ele não está armazenando a memória direito.

 

Depois disso sumiu a Falha de segmentação :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso p é um ponteiro, e por isso acho que você não pode fazer p

 

p= calloc(a,sizeof(int)) etsá apontando para a primeira posição na memorio que você alocou.

 

Para percorrer a memoria terá que andar com o ponteiro fazendo 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.