#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define N 8
void func (char* ch,char **c1_a,char **c2_a,int* c1_s,int* c2_s)
{
char* c2_a;
int i;
for(i=0; i<N; i++)
{
if(ch[i] >= 'A' && ch[i] <= 'Z')
(*c1_s)++;
}
*c2_s = N - *c1_s;
*c1_a = (char*)malloc((*c1_s)*sizeof(char));
*c2_a = (char*)malloc((*c2_s)*sizeof(char));
*c1_s=*c2_s=0;
for(i=0;i<N;i++)
{
if(ch[i] >= 'A' && ch[i] <= 'Z')
{
(**c1_a)[c1_s] = ch[i];
(*c1_s)++;
}
else
{
(**c2_a)[c2_s] = ch[i];
(*c2_s)++;
}
}
}
void main ()
{
char ch[N] = {'A','c','Z','D','G','h','i','Q'};
char* c1_a,*c2_a;
int c1_s, c2_s,i;
func(ch,&c1_a,&c2_a,&c1_s,&c2_s);
printf("Address for Capital is %d and letters are:\n",c1_a);
for(i=0;i<c1_s;i++)
{
printf("%c",c1_a[i]);
}
printf("Address for Small is %d and letters are:\n",c2_a);
for(i=0;i<c2_s;i++)
{
printf("%c",c2_a[i]);
}
}
I checked with F11 and it says it crashes once I get to the line:
*c1_a = (char*)malloc((*c1_s)*sizeof(char));
I have a project with the same idea only with numbers instead and somehow it works.