私はint型の配列の値を出力したいとしましょう。
割り当てられた配列を経由する
int *num = malloc(5 * sizeof(int));
どうすればよいですか?私が置いたすべての価値観を辿った後、私は明らかにそれを止めたいと思うでしょう。そこには5つの価値があります。私は私が与えた例で何が起こるかknwoたい
for (int i=0;i<5;i++)
:私のような何かを見ていないよ
注意。
while(*num) {
printf("%d", *num);
num++;
}
OR
while(num != NULL) {
printf("%d", *num);
num++;
}
5つの値または4つの値を保存しようとしていますか?なぜならば、配列の終わりを示すためにセンチネルを使用する場合は、センチネルのスペースを割り当てる必要があるからです。また、センチネルとして使うには "違法な"価値が必要です。 –
** '5' **回繰り返すループを書くのに問題がありますか? – Olaf
厳密には、最初の要素へのポインタを使用して配列のように扱うメモリを割り当てます。 'int'は配列ではなくポインタです。あなたは 'malloc'から得たものと同じ**アドレスを使って、この割り当てられたブロックを後で解放しなければなりません。だからあなたは**このアドレスを失ってはいけません!別のポインタを使用して繰り返します。 – Olaf