so my prgrm works fine until i tried to realloc a pointer, but it doesn’t crash all the time. sometimes it does, sometimes it runs just fine. anyone please tells me what’s wrong with my code?
#include <stdio.h>
#include <cstdlib>
#include <cstring>
char getword(char[]); //return length
int main()
{
static char buffer[100];
int wcount = 5, n = 0;
char **p = (char**) malloc (wcount);
int len = getword(buffer);
while (len && n < wcount)
{
p[n] = (char *) malloc (len);
strncpy(p[n++], buffer, len);
len = getword(buffer);
if (n == wcount)
{
wcount += 10;
char** temp = (char**) realloc (p, wcount);
if (temp == NULL)
break;
else
p = temp;
}
}
return 0;
}
char getword(char buffer[])
{
int len = 0;
char c = getchar();
if (c == EOF)
return len;
while (c == 32 || c == '\n' || c == '\t' || c == '\v')
{
c = getchar();
}
do
{
buffer[len++] = c;
c = getchar();
}
while (c != 32 && c != '\n' && c != '\t' && c != '\v' && c != EOF);
buffer[len] = 0;
return ++len;
}
char **p = (char**) malloc (wcount);allocateswcountbytes, notwcountpointers. Similarlyrealloc.