電子書籍の厳選無料作品が豊富!

reallocの使いかたに関してです。


#include <stdio.h>
#include <stdlib.h>

main ()
{
int narray[5];
int *pn, *pn2;

pn=narray;
printf("%p <=> ",pn);

printf("%p\n",narray);

memset(pn,0,sizeof(int)*5);

if((pn2 = (int *)realloc(pn, sizeof(narray)*2))==NULL){
printf("error");
exit(0);
}
pn=pn2;
memset(pn,0,sizeof(int)*5*2);
printf("realloc!\n");

return(0);
}


この記述はどこかまちがっているでしょうか?
最初の配列のサイズを2倍に増やすというだけのぷろぐらむなのですが。
どうもreallocの場所でセグメンテーションフォルトになります。

A 回答 (1件)

realloc()の第一引数で渡すのは、malloc()、calloc()、realloc()を用いて確保した領域へのポインタです。



参考URL:http://www9.plala.or.jp/sgwr-t/lib/realloc.html
    • good
    • 0
この回答へのお礼

ありがとうございます。あらためて先ほど書籍をみたところ、そうかいてあったのですが見落していました^^;

お礼日時:2004/05/03 15:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!