下面的代碼不會給出任何分配錯誤,但計數結束在大約16970與內存分配錯誤和系統暫停 ,我使用Turbo C++ 3.0 IDE ,Windows XP SP3 ,全部分區:NTFS ,PC:安裝了2 GB RAM的Dell 1545。C不能分配足夠的內存
#include <stdio.h>
#include <stdlib.h>
long counter=0;
int main(int argc, char *argv[])
{
char* array=(char*) malloc (1024*1024*10);
if (array==NULL)
{
/* allocation error */
return 1;
}
for (counter=0 ; counter<10000000;counter++)
array[counter] = 1; // trying to fill the array with one's
free (array);
return 0;
}
@Meninx:這是什麼宇宙? '1024 * 1024 * 10 - > 10,485,760',絕對不會小於'10,000,000' –
你指定一個char數組,然後用整數填充它的任何原因? –
我現在看到你正在使用'C++'編譯器,這就是爲什麼你需要施放'malloc' – Michi