C言語のことについてなんですが、
配列の動的割り付けについて質問したいです。
以下のプログラムは配列の
5個の数値をa配列に入力することとします。
#include <stdio.h>
#include <stdlib.h>
int main(void){
int a[10];
int *p1; // ポインタ変数の宣言
int i;
p1=a; printf("5個の値を入力して下さい。\n"); for(i=0;i<5;i++){ scanf("%d", &p1[i]); } i=0; while(i!=5){ printf("%d\n", *(p1+i)); // 配列bの領域の内容を表示 i++; } free(p1);
return 0;
}
このような時、元のa配列のサイズを動的に変えて、入力サイズと同じにするには、どのようなコードを書けばいいのですか?
mallocなどのサンプルもポインタを返すため、ポインタに代入しているものしか見当たりません。
できるのかどうか、できるのならどのようなコードを書けばいいのか、
どうか教えて頂きたいです。
回答を見ていると、回答が正しいのであれば、初めに宣言した配列の先頭アドレスをポインタに入れて、そのポインタをmallocで変更した場合、初めに宣言した配列のメモリが変更されている、という意味合いにとれましたので、その内容でで納得したいと思います。
回答有難うございました。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/17 03:02 編集