我在C程序設計新的(我的主要領域是爪哇)和Java中存在的ArrayList的,我可以作出這樣如何在內存中分配一個指針內的指針?
ArrayList<Class> arraylist = new ArrayList<Class>();
我的學生類可以有幾個項目,如int或字符串。
在C中,我發現我不能這樣做,但需要做這樣的事情,所以我做了這個
typedef struct vectorObject {
int myInt;
char *charPointer;
} vectorObject;
我定義我的結構的指針這樣的:
vectorObject *listVectorObject;
和使用
#define MAX_FILE_SIZE 50000
時,我想的分配的內存,我用這個:
int i;
listVectorObject = malloc(MAX_FILE_SIZE);
if (listVectorObject == NULL) {
printf("Out of memory1\n");
exit(1);
}
for (i = 0; i < MAX_FILE_SIZE; i++) {
listVectorObject[i].charPointer= malloc(MAX_FILE_SIZE);
if (listVectorObject[i].charPointer == NULL) {
printf("Out of memory2\n");
exit(1);
}
}
問題是,我總是得到
Out of Memory2
我已經嘗試過一切,我找不到在哪裏我的錯誤是。你可以幫我嗎? 謝謝!
你的機器有多少內存?它是64位嗎? – aardvarkk
你確定要'MAX_FILE_SIZE'迭代嗎? – zch
也許你必須施捨'listVectorObject =(VectorObject *)malloc(MAX_FILE_SIZE);'? – pinkpanther