#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int myReset(char** p,int size,int new_size)
{
int ret = 1;
int i = 0;
int len = 0;
char* pc = NULL;
if((*p!=NULL)&&(new_size>0))
{
pc = (char*)malloc(new_size*sizeof(char));
len = (size<new_size)?size:new_size;
for(i=0;i<len;i++)
{
pc[i] = **p;
(*p)++;
}
free(*p);
*p = pc;
}
else
{
ret = 0;
}
return ret;
}
int reset(char** p,int size,int new_size)
{
int ret = 1;
char* pt = NULL;
char* temp = NULL;
char* pp = *p;
int len = 0;
int i = 0;
if((p!=NULL)&&(new_size>0))
{
pt = (char*)malloc(new_size*sizeof(char));
temp = pt;
len = (size<new_size)?size:new_size;
for(i=0;i<new_size;i++)
{
if(i<len)
{
*temp++ = *pp++;
}
else
{
*temp++ = i;
}
}
free(*p);
*p = pt;
}
else
{
ret = 0;
}
return ret;
}
int main(void)
{
char* pc = (char*)malloc(6*sizeof(char));
int i = 0;
printf("pc = %x\n",pc);
for(i=0;i<6;i++)
{
pc[i] = i;
}
for(i=0;i<6;i++)
{
printf("%d\n",pc[i]);
}
reset(&pc,6,50);
printf("pc = %x\n",pc);
for(i=0;i<50;i++)
{
printf("%d : %d\n",i,pc[i]);
}
free(pc);
printf("-----end-----\n");
return 0;
}
#include <stdio.h>
#include <malloc.h>
int myReset(char** p,int size,int new_size)
{
int ret = 1;
int i = 0;
int len = 0;
char* pc = NULL;
char* temp = NULL;
char* pp = *p;
if((p!=NULL)&&(new_size>0))
{
pc = (char*)malloc(new_size*sizeof(char));
len = (size<new_size)?size:new_size;
temp = pc;
printf("pc : %p\n",pc);
printf("temp : %p\n",temp);
for(i=0;i<new_size;i++)
{
if(i<len)
{
*temp++ = *pp++;
}
else
{
*temp++ = 0;
}
printf("temp : %p\n",temp);
}
free(*p);
*p = pc;
}
else
{
ret = 0;
}
return ret;
}
int reset(char** p,int size,int new_size)
{
int ret = 1;
char* pt = NULL;
char* temp = NULL;
char* pp = *p;
int len = 0;
int i = 0;
if((p!=NULL)&&(new_size>0))
{
pt = (char*)malloc(new_size*sizeof(char));
temp = pt;
len = (size<new_size)?size:new_size;
for(i=0;i<len;i++)
{
*temp++ = *pp++;
}
for(i=len;i<new_size;i++)
{
*temp++ = i;
}
free(*p);
*p = pt;
}
else
{
ret = 0;
}
return ret;
}
int main(void)
{
char* pc = (char*)malloc(5*sizeof(char));
int i = 0;
printf("pc : %p\n",pc);
printf("initial array...\n");
for(i=0;i<5;i++)
{
pc[i] = i;
}
for(i=0;i<5;i++)
{
printf("%d\n",pc[i]);
}
myReset(&pc,5,10);
printf("pc : %p\n",pc);
for(i=0;i<10;i++)
{
printf("%d : %d\n",i,pc[i]);
}
free(pc);
printf("-----end-----\n");
return 0;
}