掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.23708

動的に確保した配列を静的に保持
投稿者---やっさん(2005/10/18 22:55:46)


動的に確保した配列を静的に保持することはできるんでしょうか?
最初から静的に確保した配列なら,
以下のようなプログラムで func() で array[] に値を代入するのは
1回だけになり,その値は func() を抜けても保持されています.

配列の大きさがあらかじめ分かっていない配列に対して,
このような処理を行いたいのです.
func() の中で int *array = new int[n]; として,
func() を抜けても array[] の値が保持されるようにすることは可能なんでしょうか?

よろしくお願いします.


#include <iostream>

using namespace std;


void func(int a, int *f)
{
    static int array[5];
    int i;  
    static int flag=0;
    
    if(flag==0) {
        flag=1;
        for(i=0; i<5; i++)  {
            array[i] = i;
        }
    }
    
    for(i=0; i<5; i++)  {
        f[i] = a*array[i];
    }
}
    
    
int main(void)
{
    int array[5], a[]={2,4,6,8,10};
    int i, j;
    
    for(i=0; i<5; i++)  {
        func(a[i], array);
        for(j=0; j<5; j++)  {
            cout << array[j] << endl;
        }
    }
    return 0;
}
    




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:動的に確保した配列を静的に保持 23709 RiSK 2005/10/18 23:01:50


No.23709

Re:動的に確保した配列を静的に保持
投稿者---RiSK(2005/10/18 23:01:50)


void func(int a, int *f)
{
    static char * p = new char[a];
}



この投稿にコメントする

削除パスワード

No.23724

Re:動的に確保した配列を静的に保持
投稿者---やっさん(2005/10/19 16:24:23)


>
void func(int a, int *f)
{
    static char * p = new char[a];
}


そうすればいいのですか.
分かりました.
ありがとうございました.


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧