teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

誤記修正

2020/06/04 05:29

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -4,4 +4,4 @@
4
4
  では、int一個分の領域しか確保できていません。幾つ入力するか入力して、その分を確保しましょう。
5
5
  動的に確保するならrealloc()等で、領域を増やすことも出来ます。(reallocはポインタが変わる可能性が有るので古いポインタを上書きしないように)
6
6
  →[確保したメモリ領域のサイズを変更する](http://www.c-tipsref.com/tips/array/realloc.html)
7
- ちなみに↑で解説している“if ((ptr = (int *)realloc(ptr, sizeof(int) * 15)) == NULL)”では、同じポインタ(ptr)を使っていますが、reallocに渡すptrと復帰値を受け取るptrは別物にして下さい。で、違った場合は古いptrを開放(free)して新しい方を使いましょう。
7
+ ちなみに↑で解説している“if ((ptr = (int *)realloc(ptr, sizeof(int) * 15)) == NULL)”では、同じポインタ(ptr)を使っていますが、reallocに渡すptrと復帰値を受け取るptrは別物にして下さい。で、違った場合は~~古いptrを開放(free)して~~新しい方を使いましょう。

2

ソース追記

2020/06/04 05:29

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -3,4 +3,5 @@
3
3
 
4
4
  では、int一個分の領域しか確保できていません。幾つ入力するか入力して、その分を確保しましょう。
5
5
  動的に確保するならrealloc()等で、領域を増やすことも出来ます。(reallocはポインタが変わる可能性が有るので古いポインタを上書きしないように)
6
- →[確保したメモリ領域のサイズを変更する](http://www.c-tipsref.com/tips/array/realloc.html)
6
+ →[確保したメモリ領域のサイズを変更する](http://www.c-tipsref.com/tips/array/realloc.html)
7
+ ちなみに↑で解説している“if ((ptr = (int *)realloc(ptr, sizeof(int) * 15)) == NULL)”では、同じポインタ(ptr)を使っていますが、reallocに渡すptrと復帰値を受け取るptrは別物にして下さい。で、違った場合は古いptrを開放(free)して新しい方を使いましょう。

1

誤記修正

2020/06/04 03:33

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -2,5 +2,5 @@
2
2
  ipy = (int *)malloc(sizeof(int));
3
3
 
4
4
  では、int一個分の領域しか確保できていません。幾つ入力するか入力して、その分を確保しましょう。
5
- 動的に確保るならrealloc()等で、領域を増やすことも出来ます。(reallocはポインタが変わる可能性が有るので古いポインタを上書きしないように)
5
+ 動的に確保るならrealloc()等で、領域を増やすことも出来ます。(reallocはポインタが変わる可能性が有るので古いポインタを上書きしないように)
6
6
  →[確保したメモリ領域のサイズを変更する](http://www.c-tipsref.com/tips/array/realloc.html)