C統合・質問スレッド
■ このスレッドは過去ログ倉庫に格納されています
0653デフォルトの名無しさん
2007/02/15(木) 23:14:58malloc() とfree()を使う方法では一つの関数内で完結させれば上手くいくのですが、
複数の関数でそれをやると上手く行きません。例えば↓では、関数b()で
エラーとなってしまいます。何故でしょうか?もう弱り果てています…
#include<stdio.h>
#include<stdlib.h>
void a(int*, int); //メモリ確保
void b(int*, int); //メモリ開放
main(int argc, char* argv)
{
int size;
int* array1;
int* array2;
size=10;
//うまくいく
array1 = (int*)malloc(sizeof(int)*size);
free(array1);
//うまくいかない!(bのところでメモリ領域破壊が…orz)
a(array2,size);
b(array2,size);
}
void a(int* array, int size){ array = (int*)malloc(sizeof(int)*size); }
void b(int* array, int size){ free(array); }
■ このスレッドは過去ログ倉庫に格納されています