←検索窓の楽しみ方
  ショッピングモール  掲示板ランキング


掲示板利用宣言

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

 私は

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

掲示板1

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

No.4694

メモリ開放(free)仕方について
投稿者---tana(2005/10/07 08:18:36)


今画像処理で、差分をとるプログラムを作っているのですが、メモリ開放のところでコンパイルエラーが出ます。ずいぶん考えましたがわからないので、プログラムの悪い点を教えていただけますでしょうか?
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

/*a[0]はx(横) a[1]はy(縦)の値が入っている*/

#define RGB 3
#define max 100

//-----------プロトタイプ宣言--------------
void exit(int);
void file_imformation(int *);
void inputdata1(FILE *, char *, int a[]);
void inputdata2(FILE *, char *, int a[]);
void outputdata(FILE *, int a[]);
void getmemory(int a[],double*** N);
void leftmemory(int a[],double*** N);




//-----------グローバル変数-----------------
long int N[max][max][RGB]={0}, M[max][max][RGB]={0}, L[max][max][RGB]={0};
//-----------main function------------------
int main(void){
double*** N;
double*** M;
double*** L;
int i,j,k,a[2];//a[]はx、yの値
//int N[max][max][RGB]={0}, M[max][max][RGB]={0}, L[max][max][RGB]={0};
FILE *infile1, *infile2, *outfile1, *outfile2;
char filename[10];


file_imformation(a);
getmemory(a,M);
getmemory(a,N);
getmemory(a,L);

/*inputdata1(infile1,filename,a);
inputdata2(infile2,filename,a);
outputdata(outfile1,a);
*/
leftmemory(a,M);
leftmemory(a,N);
leftmemory(a,L);
return 0;
}

//-----------functions-------------------
void file_imformation(int a[]){
printf("画像のサイズを入力してください。\n最大のサイズは%d×%dです。\n",max,max);
printf("横=");
scanf("%d",&a[0]);
printf("縦=");
scanf("%d",&a[1]);
if(a[0]>max || a[1]>max){
printf("サイズが大きすぎます。\n");
exit(-1);
}

}

void inputdata1(FILE *infile1 , char *filename , int a[]){
int i,j,k;
printf("画像間の差分をとります。\n");
printf("画像1のファイル名を入力してください。\n");
scanf("%s",filename);
infile1 = fopen(filename, "r");
if(NULL==fopen(filename, "r")){
printf("ファイルが存在しません\n");
exit(1);
}
for(i=0; i<a[0]; i++){
for(j=0; j<a[1]; j++){
for(k=0;k<RGB;k++){
fscanf(infile1, "%d ",&M[i][j][k]);
printf("M[%d][%d][%d]=%d",i,j,k,M[i][j][k]);
}
}
}
fclose(infile1);
}
void inputdata2(FILE *infile2 , char *filename , int a[]){
int i,j,k;
printf("画像2のファイル名を入力してください。\n"); scanf("%s",filename);
infile2 = fopen(filename, "r");
if(NULL==infile2){
printf("ファイルが存在しません\n");
exit(1);
}
for(i=0; i<a[0]; i++){
for(j=0; j<a[1]; j++){
for(k=0;k<RGB;k++){
fscanf(infile2, "%d ",&N[i][j][k]);
}
}
}
fclose(infile2);
}

void outputdata(FILE *outfile1 , int a[]){
int i,j,k;
outfile1 = fopen("output.pgm", "w");

fprintf(outfile1, "P3\n");
fprintf(outfile1, "%d %d\n",a[0],a[1]);
fprintf(outfile1, "255\n");

for(i=0; i<a[0]; i++){
for(j=0; j<a[1]; j++){
for(k=0;k<RGB;k++){
L[i][j][k] = N[i][j][k]-M[i][j][k];
if(L[i][j][k] <= 0){
L[i][j][k] = 0;
}
else if( L[i][j][k] >= 255){
L[i][j][k] = 255;
}
fprintf(outfile1, "%d ", L[i][j][k]);
}
}
fprintf(outfile1, "\n");
}
fclose(outfile1);
}

void getmemory(int a[],double*** N){
int i,j;
N = (double***)malloc(sizeof(double**)*a[0]);
if(N==NULL){
perror("メモリの確保に失敗しました。\n");
exit(1);}
perror("メモリ確保開始\n");
for(i=0 ; i < a[0] ;i++){
N[i] = (double**)malloc(sizeof(double*)*a[1]);
if(N[i]==NULL) {
perror("メモリの確保に失敗しました。\n");
exit(1);}
for(j=0 ; j < a[1] ; j++){
N[i][j] = (double *)malloc(sizeof(double)*RGB);
if(N[i][j]==NULL)exit(1);
}
}
perror("メモリ確保終了\n");

}

void leftmemory(int a[],double*** N){
int i,j;
perror("メモリ開放開始\n");
for(i=0 ; i < a[0] ; i++){
for(j=0 ; j < a[1] ; j++){
free(N[i][j]);
}
free(N[i]);
}
free(N);
perror("メモリ開放終了\n");
exit(0);
}





この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:メモリ開放(free)仕方について 4695 Yuki 2005/10/07 08:35:49
<子記事> Re:メモリ開放(free)仕方について 4696 nop 2005/10/07 08:57:40


No.4695

Re:メモリ開放(free)仕方について
投稿者---Yuki(2005/10/07 08:35:49)


ソースを添付するときは字下げしてください。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

/*a[0]はx(横) a[1]はy(縦)の値が入っている*/

#define RGB 3
#define max 100

//-----------プロトタイプ宣言-------------- 

void exit(int);
void file_imformation(int *);
void inputdata1(FILE *, char *, int a[]);
void inputdata2(FILE *, char *, int a[]);
void outputdata(FILE *, int a[]);
void getmemory(int a[],double*** N);
void leftmemory(int a[],double*** N);




//-----------グローバル変数-----------------

long int N[max][max][RGB]={0}, M[max][max][RGB]={0}, L[max][max][RGB]={0};
//-----------main function------------------

int main(void){
    double*** N;
    double*** M;
    double*** L;
    int i,j,k,a[2];//a[]はx、yの値

    //int N[max][max][RGB]={0}, M[max][max][RGB]={0}, L[max][max][RGB]={0};

    FILE *infile1, *infile2, *outfile1, *outfile2;
    char filename[10];


    file_imformation(a); 
    getmemory(a,M);
    getmemory(a,N);
    getmemory(a,L);

    /*inputdata1(infile1,filename,a);
    inputdata2(infile2,filename,a); 
    outputdata(outfile1,a);
    */
    leftmemory(a,M);
    leftmemory(a,N);
    leftmemory(a,L);
    return 0; 
}

//-----------functions-------------------

void file_imformation(int a[]){
    printf("画像のサイズを入力してください。\n最大のサイズは%d×%dです。\n",max,max);
    printf("横="); 
    scanf("%d",&a[0]);
    printf("縦="); 
    scanf("%d",&a[1]);
    if(a[0]>max || a[1]>max){
        printf("サイズが大きすぎます。\n");
        exit(-1);
    }

} 

void inputdata1(FILE *infile1 , char *filename , int a[]){
    int i,j,k;
    printf("画像間の差分をとります。\n");
    printf("画像1のファイル名を入力してください。\n");
    scanf("%s",filename); 
    infile1 = fopen(filename, "r");
    if(NULL==fopen(filename, "r")){
        printf("ファイルが存在しません\n");
        exit(1);
    }
    for(i=0; i<a[0]; i++){
        for(j=0; j<a[1]; j++){
            for(k=0;k<RGB;k++){
                fscanf(infile1, "%d ",&M[i][j][k]);
                printf("M[%d][%d][%d]=%d",i,j,k,M[i][j][k]);
            }
        }
    } 
    fclose(infile1);
}
void inputdata2(FILE *infile2 , char *filename , int a[]){
    int i,j,k;
    printf("画像2のファイル名を入力してください。\n"); scanf("%s",filename); 
    infile2 = fopen(filename, "r");
    if(NULL==infile2){
        printf("ファイルが存在しません\n");
        exit(1);
    }
    for(i=0; i<a[0]; i++){
        for(j=0; j<a[1]; j++){
            for(k=0;k<RGB;k++){
                fscanf(infile2, "%d ",&N[i][j][k]);
            }
        }
    } 
    fclose(infile2);
}

void outputdata(FILE *outfile1 , int a[]){
    int i,j,k;
    outfile1 = fopen("output.pgm", "w");

    fprintf(outfile1, "P3\n"); 
    fprintf(outfile1, "%d %d\n",a[0],a[1]); 
    fprintf(outfile1, "255\n"); 

    for(i=0; i<a[0]; i++){
        for(j=0; j<a[1]; j++){
            for(k=0;k<RGB;k++){
                L[i][j][k] = N[i][j][k]-M[i][j][k];
                if(L[i][j][k] <= 0){ 
                    L[i][j][k] = 0;
                }
                else if( L[i][j][k] >= 255){
                    L[i][j][k] = 255;
                }
                fprintf(outfile1, "%d ", L[i][j][k]); 
            }
        }
        fprintf(outfile1, "\n"); 
    }
    fclose(outfile1);
}

void getmemory(int a[],double*** N){
    int i,j;
    N = (double***)malloc(sizeof(double**)*a[0]);
    if(N==NULL){
        perror("メモリの確保に失敗しました。\n");
        exit(1);
    }
    perror("メモリ確保開始\n");
    for(i=0 ; i < a[0] ;i++){
        N[i] = (double**)malloc(sizeof(double*)*a[1]);
        if(N[i]==NULL) {
            perror("メモリの確保に失敗しました。\n");
            exit(1);
        }
        for(j=0 ; j < a[1] ; j++){
            N[i][j] = (double *)malloc(sizeof(double)*RGB);
            if(N[i][j]==NULL)exit(1);
        }
    }
    perror("メモリ確保終了\n");

}

void leftmemory(int a[],double*** N){
    int i,j;
    perror("メモリ開放開始\n");
    for(i=0 ; i < a[0] ; i++){
        for(j=0 ; j < a[1] ; j++){
            free(N[i][j]);
        }
        free(N[i]);
    }
    free(N);
    perror("メモリ開放終了\n");
    exit(0);
}




この投稿にコメントする

削除パスワード

No.4697

Re:メモリ開放(free)仕方について
投稿者---まきじ(2005/10/07 09:30:19)


>void getmemory(int a[],double*** N);

>double*** N;
>double*** M;
>double*** L;
>getmemory(a,M);
>getmemory(a,N);
>getmemory(a,L);

getmemory() で確保された領域へのポインタを N M L に代入するので
N M L のポインタを getmemory() に渡す必要があります。

void getmemory(int a[],double**** N);

getmemory(a,&N);

# 引数にせずに戻り値にする方法の方が判りやすいかも


この投稿にコメントする

削除パスワード

No.4706

Re:メモリ開放(free)仕方について
投稿者---tana(2005/10/07 14:28:58)


ご返答ありがとうございます。つまりこういうことですよね?しかし相変わらずエラーが...でてしまいます。自分の書き方が間違ってますでしょうか?


#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

/*a[0]はx(横) a[1]はy(縦)の値が入っている*/

#define RGB 3
#define max 100

//-----------プロトタイプ宣言-------------- 

void exit(int);
void file_imformation(int *);
void inputdata1(FILE *, char *, int a[]);
void inputdata2(FILE *, char *, int a[]);
void outputdata(FILE *, int a[]);
void getmemory(int a[],double**** N);
void leftmemory(int a[],double**** N);




//-----------グローバル変数-----------------

long int N[max][max][RGB]={0}, M[max][max][RGB]={0}, L[max][max][RGB]={0};
//-----------main function------------------

int main(void){
double*** N;
double*** M;
double*** L;
  int i,j,k,a[2];//a[]はx、yの値

  //int N[max][max][RGB]={0}, M[max][max][RGB]={0}, L[max][max][RGB]={0};

  FILE *infile1, *infile2, *outfile1, *outfile2;
  char filename[10];

 
  file_imformation(a);  
  getmemory(a,&M);
  getmemory(a,&N);
  getmemory(a,&L);
  
  /*inputdata1(infile1,filename,a);
  inputdata2(infile2,filename,a); 
  outputdata(outfile1,a);
*/
  leftmemory(a,&M);
  leftmemory(a,&N);
  leftmemory(a,&L);
  return 0; 
}
 
//-----------functions-------------------

void file_imformation(int a[]){
  printf("画像のサイズを入力してください。\n最大のサイズは%d×%dです。\n",max,max);
  printf("横="); 
  scanf("%d",&a[0]);
  printf("縦="); 
  scanf("%d",&a[1]);
  if(a[0]>max || a[1]>max){
    printf("サイズが大きすぎます。\n");
    exit(-1);
  }
 
} 
 
void inputdata1(FILE *infile1 , char *filename , int a[]){
  int i,j,k;
  printf("画像間の差分をとります。\n");
  printf("画像1のファイル名を入力してください。\n");
  scanf("%s",filename); 
    infile1 = fopen(filename, "r");
  if(NULL==fopen(filename, "r")){
    printf("ファイルが存在しません\n");
    exit(1);
  }
  for(i=0; i<a[0]; i++){
      for(j=0; j<a[1]; j++){
   for(k=0;k<RGB;k++){
     fscanf(infile1, "%d ",&M[i][j][k]);
printf("M[%d][%d][%d]=%d",i,j,k,M[i][j][k]);
   }
      }
  } 
  fclose(infile1);
}
void inputdata2(FILE *infile2 , char *filename , int a[]){
int i,j,k;
printf("画像2のファイル名を入力してください。\n"); scanf("%s",filename); 
  infile2 = fopen(filename, "r");
  if(NULL==infile2){
    printf("ファイルが存在しません\n");
    exit(1);
  }
  for(i=0; i<a[0]; i++){
    for(j=0; j<a[1]; j++){
      for(k=0;k<RGB;k++){
 fscanf(infile2, "%d ",&N[i][j][k]);
      }
    }
  } 
  fclose(infile2);
}

void outputdata(FILE *outfile1 , int a[]){
int i,j,k;
outfile1 = fopen("output.pgm", "w");
  
  fprintf(outfile1, "P3\n"); 
  fprintf(outfile1, "%d %d\n",a[0],a[1]); 
  fprintf(outfile1, "255\n"); 
  
  for(i=0; i<a[0]; i++){
    for(j=0; j<a[1]; j++){
      for(k=0;k<RGB;k++){
 L[i][j][k] = N[i][j][k]-M[i][j][k];
 if(L[i][j][k] <= 0){ 
   L[i][j][k] = 0;
 }
 else if( L[i][j][k] >= 255){
   L[i][j][k] = 255;
 }
 fprintf(outfile1, "%d ", L[i][j][k]); 
      }
    }
    fprintf(outfile1, "\n"); 
  }
  fclose(outfile1);
}

void getmemory(int a[],double**** N){
int i,j;
N = (double***)malloc(sizeof(double**)*a[0]);
if(N==NULL){
perror("メモリの確保に失敗しました。\n");
 exit(1);}
perror("メモリ確保開始\n");
for(i=0 ; i < a[0] ;i++){
N[i] = (double**)malloc(sizeof(double*)*a[1]);
if(N[i]==NULL) {
perror("メモリの確保に失敗しました。\n");
exit(1);}
for(j=0 ; j < a[1] ; j++){
N[i][j] = (double *)malloc(sizeof(double)*RGB);
if(N[i][j]==NULL)exit(1);
}
}
perror("メモリ確保終了\n");

}

void leftmemory(int a[],double**** N){
int i,j;
perror("メモリ開放開始\n");
for(i=0 ; i < a[0] ; i++){
for(j=0 ; j < a[1] ; j++){
free(N[i][j]);
}
free(N[i]);
}
free(N);
perror("メモリ開放終了\n");
exit(0);
}






この投稿にコメントする

削除パスワード

No.4711

Re:メモリ開放(free)仕方について
投稿者---まきじ(2005/10/07 17:57:05)


double 型 10*10 の二次元配列での例。
#include<stdio.h>
#include<stdlib.h>

void getmemory(double*** array){

    int i;
    
    *array = (double**)malloc(sizeof(double*)*10);
    
    if(*array == NULL){
        puts("メモリの確保に失敗しました");
        return;
    }
    
    for(i = 0 ; i < 10 ;i++){
        (*array)[i] = (double*)malloc(sizeof(double)*10);
        if((*array)[i] == NULL) {
            puts("メモリの確保に失敗しました");
            return;
        }
    }
    puts("メモリ確保終了");
}

void freememory(double** array){

    int i;
    
    for(i = 0 ; i < 10 ;i++){
        free(array[i]);
    }
    free(array);
    puts("メモリ解放終了");
}

int main(void){

    double** array;
    
    getmemory(&array);
    
    freememory(array);
    
    return 0; 
}



この投稿にコメントする

削除パスワード

No.4704

Re:メモリ開放(free)仕方について
投稿者---tana(2005/10/07 14:22:11)


スイマセンお願いします。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

/*a[0]はx(横) a[1]はy(縦)の値が入っている*/

#define RGB 3
#define max 100

//-----------プロトタイプ宣言-------------- 

void exit(int);
void file_imformation(int *);
void inputdata1(FILE *, char *, int a[]);
void inputdata2(FILE *, char *, int a[]);
void outputdata(FILE *, int a[]);
void getmemory(int a[],double**** N);
void leftmemory(int a[],double**** N);




//-----------グローバル変数-----------------

long int N[max][max][RGB]={0}, M[max][max][RGB]={0}, L[max][max][RGB]={0};
//-----------main function------------------

int main(void){
double*** N;
double*** M;
double*** L;
  int i,j,k,a[2];//a[]はx、yの値

  //int N[max][max][RGB]={0}, M[max][max][RGB]={0}, L[max][max][RGB]={0};

  FILE *infile1, *infile2, *outfile1, *outfile2;
  char filename[10];

 
  file_imformation(a);  
  getmemory(a,&M);
  getmemory(a,&N);
  getmemory(a,&L);
  
  /*inputdata1(infile1,filename,a);
  inputdata2(infile2,filename,a); 
  outputdata(outfile1,a);
*/
  leftmemory(a,&M);
  leftmemory(a,&N);
  leftmemory(a,&L);
  return 0; 
}
 
//-----------functions-------------------

void file_imformation(int a[]){
  printf("画像のサイズを入力してください。\n最大のサイズは%d×%dです。\n",max,max);
  printf("横="); 
  scanf("%d",&a[0]);
  printf("縦="); 
  scanf("%d",&a[1]);
  if(a[0]>max || a[1]>max){
    printf("サイズが大きすぎます。\n");
    exit(-1);
  }
 
} 
 
void inputdata1(FILE *infile1 , char *filename , int a[]){
  int i,j,k;
  printf("画像間の差分をとります。\n");
  printf("画像1のファイル名を入力してください。\n");
  scanf("%s",filename); 
    infile1 = fopen(filename, "r");
  if(NULL==fopen(filename, "r")){
    printf("ファイルが存在しません\n");
    exit(1);
  }
  for(i=0; i<a[0]; i++){
      for(j=0; j<a[1]; j++){
   for(k=0;k<RGB;k++){
     fscanf(infile1, "%d ",&M[i][j][k]);
printf("M[%d][%d][%d]=%d",i,j,k,M[i][j][k]);
   }
      }
  } 
  fclose(infile1);
}
void inputdata2(FILE *infile2 , char *filename , int a[]){
int i,j,k;
printf("画像2のファイル名を入力してください。\n"); scanf("%s",filename); 
  infile2 = fopen(filename, "r");
  if(NULL==infile2){
    printf("ファイルが存在しません\n");
    exit(1);
  }
  for(i=0; i<a[0]; i++){
    for(j=0; j<a[1]; j++){
      for(k=0;k<RGB;k++){
 fscanf(infile2, "%d ",&N[i][j][k]);
      }
    }
  } 
  fclose(infile2);
}

void outputdata(FILE *outfile1 , int a[]){
int i,j,k;
outfile1 = fopen("output.pgm", "w");
  
  fprintf(outfile1, "P3\n"); 
  fprintf(outfile1, "%d %d\n",a[0],a[1]); 
  fprintf(outfile1, "255\n"); 
  
  for(i=0; i<a[0]; i++){
    for(j=0; j<a[1]; j++){
      for(k=0;k<RGB;k++){
 L[i][j][k] = N[i][j][k]-M[i][j][k];
 if(L[i][j][k] <= 0){ 
   L[i][j][k] = 0;
 }
 else if( L[i][j][k] >= 255){
   L[i][j][k] = 255;
 }
 fprintf(outfile1, "%d ", L[i][j][k]); 
      }
    }
    fprintf(outfile1, "\n"); 
  }
  fclose(outfile1);
}

void getmemory(int a[],double**** N){
int i,j;
N = (double***)malloc(sizeof(double**)*a[0]);
if(N==NULL){
perror("メモリの確保に失敗しました。\n");
 exit(1);}
perror("メモリ確保開始\n");
for(i=0 ; i < a[0] ;i++){
N[i] = (double**)malloc(sizeof(double*)*a[1]);
if(N[i]==NULL) {
perror("メモリの確保に失敗しました。\n");
exit(1);}
for(j=0 ; j < a[1] ; j++){
N[i][j] = (double *)malloc(sizeof(double)*RGB);
if(N[i][j]==NULL)exit(1);
}
}
perror("メモリ確保終了\n");

}

void leftmemory(int a[],double**** N){
int i,j;
perror("メモリ開放開始\n");
for(i=0 ; i < a[0] ; i++){
for(j=0 ; j < a[1] ; j++){
free(N[i][j]);
}
free(N[i]);
}
free(N);
perror("メモリ開放終了\n");
exit(0);
}






この投稿にコメントする

削除パスワード

No.4696

Re:メモリ開放(free)仕方について
投稿者---nop(2005/10/07 08:57:40)


>メモリ開放のところでコンパイルエラーが出ます。

エラー内容はきちんと書きましょう。
# コンパイラが表示するエラーを貼るのが一番ですよ。


この投稿にコメントする

削除パスワード

No.4705

Re:メモリ開放(free)仕方について
投稿者---tana(2005/10/07 14:24:54)


>>メモリ開放のところでコンパイルエラーが出ます。
>
>エラー内容はきちんと書きましょう。
># コンパイラが表示するエラーを貼るのが一番ですよ。

>>実はエラーというよりメモリ開放開始を始めるとメモリ開放終了を表示せずにプログラムが終わってしまうんです...。なのでfree関数がちがうものとおもうのですが...


この投稿にコメントする

削除パスワード

No.4707

Re:メモリ開放(free)仕方について
投稿者---とおり(2005/10/07 14:32:53)


>実はエラーというよりメモリ開放開始を始めるとメモリ開放終了を表示せずにプログラムが終わってしまうんです...。なのでfree関数がちがうものとおもうのですが...

コンパイルエラーではなかったのですか?
実行時の問題なのですか?
回答者はエスパーじゃないので、状況を正確に示してくれないと回答不能です。

コンパイルエラーならば
・エラー内容(コピペで)
実行時ならば、
・あなたが考えている正しい挙動
・でも実際に起こっている(あなたがおかしいと思っている)挙動
を明確に書いて下さい。
特に実行時の実際の話は、例えばどう終了するのか、実際の出力結果など
限りなく具体的に正確に書かないと駄目です。
状況は、あなたにしか説明できないのだから…


この投稿にコメントする

削除パスワード

No.4720

Re:メモリ開放(free)仕方について
投稿者---tana(2005/10/08 00:06:22)


コンパイルは通っても、実行すると

C:\Documents and Settings\Owner\sokken>dif3.exe
画像のサイズを入力してください。
最大のサイズは100×100です。
横=10
縦=10
メモリ確保開始
: Error 0
メモリ確保終了
: Error 0
メモリ確保開始
: Error 0
メモリ確保終了
: Error 0
メモリ確保開始
: Error 0
メモリ確保終了
: Error 0
メモリ開放開始
: Error 0

となって、メモリ開放を開始するとwindowsのエラーメッセージを報告しますかというウィンドウが出るのです(しかも毎回決まって三回)。
メモリ確保はエラーが出ないので開放のプログラムがちがうのだと思うのですが...


この投稿にコメントする

削除パスワード

No.4721

Re:メモリ開放(free)仕方について
投稿者---tana(2005/10/08 00:51:54)


スイマセン。がんばって修正したらできました(~~)
どうやらfree関数によけいな配列のポインタを渡していたようで...。
いろいろとアドバイスいただきありがとうございました。また本当に困ったら利用させていただきます!


この投稿にコメントする

削除パスワード

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




掲示板提供:Real Integrity