私は数字の配列を持っています..必要なもの:mallocによって2つの新しい配列を作成するには、1つは偶数用、もう1つは奇数用であり、各配列のサイズでもメインで印刷する必要があります
配列は 1,2,5,6,8,4,5,10,65,69,98,76,46,49,67 です
偶数配列: 2,6,8,4,10,98,76,46
奇数配列: 1,5,5,65,69,49,67
関数はこのように書かなければなりません (これは教師が望んでいる方法です)
void evenodd(int a[],int** even,int* evensize,int** odd,int* oddsize)
私のコード:
#include <stdio.h>
#include <stdlib.h>
#define N 15
void evenodd(int a[],int** even,int* evensize,int** odd,int* oddsize)
{
int i,j,cnte,cnto,e,o;
cnte=cnto=0;
for(i=0;i<N;i++)
if(a[i]%2==0) cnte++;
else cnto++;
even=(int**)malloc(sizeof(int)*cnte);
*evensize=cnte;
odd=(int**)malloc(sizeof(int)*cnto);
*oddsize=cnto;
for(i=0,o=0,e=0;i<N;i++)
if(a[i]%2==0)
even[e++]=a[i];
else odd[o++]=a[i];
return;
}
int main()
{
int i;
int a[N]={1,2,5,6,8,4,5,10,65,69,98,76,46,49,67};
int *even,evensize,*odd,oddsize;
evenodd(a,&even,&evensize,&odd,&oddsize);
printf("Even Numbers Array: ");
for(i=0;i<evensize;i++)
printf("%d ",even[i]);
printf("\nSize of even array is: %d",evensize);
printf("\n\n");
printf("Even Numbers Array: ");
for(i=0;i<oddsize;i++)
printf("%d ",odd[i]);
printf("\nSize of even array is: %d",oddsize);
}
エラーはMallocにあると思います..しかし、理由はわかりません..