' int main()
{
int *ptr = (int*)calloc(10,sizeof(int));//allocating memory for 10 integers
ptr = realloc(ptr,20*sizeof(int)); //reallocating the memory for 20 integers
free(ptr);
return 0;
}'
最初にptrホールドメモリにはゼロが含まれていますが、新しく作成されたメモリにはゼロまたはガベージ値が含まれています。 私はcallocポインタを再割り当てするとどうなるでしょうか?
ゼロはreallocをすることができますどのように提示した場合
は、malloc関数やのcallocを使用して作成されたPTRを乗り切る知っています。ptr = realloc(ptr,20*sizeof(int));
(およびいくつかは、それは同様に安全ではないと言うことがありますが、適切に(結果をキャストし、戻ってそれを割り当てたりすることなく、それが正常に動作しない)のような
realloc
と呼ばれていても
コードが正しくありません。 'realloc'のマニュアルページ(あなたの質問にも答えます)を読んでください。あなたは少なくともあなた自身の努力を示すことが期待されます。 – Olaf
ああこれは正しい。私の答えを更新する時間:) –
私はそれを続行することが難しいと言う必要があります。しかし、OPは実際にタイプミスを改善するので、私は喜んでそれをやります。 –