这是我从shcool的项目,我有这个错误,不能弄明白!如果你能帮助我真的很感激! 这段代码应该创建一个圆形图像,里面有随机点,创建一个正方形!我想我需要用malloc解决这个问题,但我不明白怎么做!
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
//Função que calcula o pi
void*calc_pi(void*parameters)
{
//inicialização das variaveis
double npoints=100000000;
double x,y;
int i, circle_count=0;
double D; //diametro do circulo
double pi;
for (i=0; i < npoints; i++)
{
x=(double)abs(rand())/RAND_MAX;
y=(double)abs(rand())/RAND_MAX;
D=sqrt(pow((x-0.5),2)+pow((y-0.5),2));
//confirmar pontos dentro do circulo
if (D<=0.5)
{
pi=(double)4*circle_count/npoints;
printf("pi=%f\n",pi);
circle_count++;
return NULL;
}
}
}
int main()
{
//iniciar variaveis
enter code here
double npoints=100000000;
double x,y;
int circle_count=0;
int i = 0 ;
double D;
double pi;
int numerothreads=5;
int numpontoscirculo;
double*npontos_circulo;
double oi=npoints/numerothreads;
//id da thread
pthread_t thread_id;
//criar uma thread que vai correr a funcao calc_pi
pthread_create(&thread_id, NULL, &calc_pi,&oi);
//fazer funçao join para receber os dados threads, criar funçao join para cada thread
pthread_join(thread_id,(void*)&npontos_circulo);
printf("O numero de pontos dentro do circulo:\n");
//fazer um ciclo para chamar as threads
for(i=0;i<5;i++)
{
printf("%lf\n",*(npontos_circulo+i));
}
return 0;
}