我在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