#include<stdio.h>
int main(int argc,char *argv[]){
char *h,*k;
h=(char *)malloc(51);
printf("入力(ctrl-zで終了):\n");
k=h;
while(1){
*k=getchar();
if(*k==EOF)break;
if(*k=='\n')continue;
if(k==h+50){
printf("50バイト追加\n");
return 1;
}
k=k+1;
}
*k='\0';
printf("出力:\n");
for(k=h;*k!='\0';k++){
putchar(*k);
}
printf("\n");
free(h);
return 0;
}
以下の流れで作れるとアドバイスはもらいましたがプログラムの作り方がわかりません。
今の領域のアドレスをaに入れる。
50バイト大きな新しい領域をmallocで確保し、先頭アドレスをhに入れる。
hに古い領域aの内容をコピーする。
aをfreeにする。
上の流れで教えてください。