尝试进行内存分配时出现访问冲突错误
Access Violation Error while trying to make a memory allocation
struct DynamicArray {
int allocated;
int used;
int *array;
}; typedef struct DynamicArray DynamicArray;
DynamicArray * ArrayCreate(int initialSize) {
DynamicArray *array;
(*array).array = (int*)malloc(initialSize*sizeof(int)); //Debugger points this line.
if((*array).array == NULL) {
return NULL;
}
(*array).allocated = initialSize;
(*array).used=0;
return array;
}
我正在尝试制作我自己的动态数组库。只是为了学习和提高自己。请查看我的代码。我做错了什么?
您正在取消引用此处未初始化的指针:
DynamicArray *array; // uninitialized
(*array).array = .... // ooops
你需要让 array
指向一些你可以写入的内存。例如
DynamicArray *array = malloc(sizeof(DynamicArray));
首先使用这个:
DynamicArray *array;
array = (DynamicArray *)malloc(sizeof(struct DynamicArray));
array->array = ...
如果你不初始化一个点,你就不能取消引用它,因为它指向 NULL。
struct DynamicArray {
int allocated;
int used;
int *array;
}; typedef struct DynamicArray DynamicArray;
DynamicArray * ArrayCreate(int initialSize) {
DynamicArray *array;
(*array).array = (int*)malloc(initialSize*sizeof(int)); //Debugger points this line.
if((*array).array == NULL) {
return NULL;
}
(*array).allocated = initialSize;
(*array).used=0;
return array;
}
我正在尝试制作我自己的动态数组库。只是为了学习和提高自己。请查看我的代码。我做错了什么?
您正在取消引用此处未初始化的指针:
DynamicArray *array; // uninitialized
(*array).array = .... // ooops
你需要让 array
指向一些你可以写入的内存。例如
DynamicArray *array = malloc(sizeof(DynamicArray));
首先使用这个:
DynamicArray *array;
array = (DynamicArray *)malloc(sizeof(struct DynamicArray));
array->array = ...
如果你不初始化一个点,你就不能取消引用它,因为它指向 NULL。