#include <stdio.h>
#define DEFAULT_CAPACITY 5
這裏是我的typedef'ed結構 - 我不允許改變它。帶指針和數組的typedef結構
typedef struct Vector
{
int items[DEFAULT_CAPACITY];
int size;
}*VectorP;
* VectorP已經是一個讓我困惑的指針了。
接下來,我初始化向量,調用malloc
void initVector(VectorP vector)
{
vector = (VectorP)malloc(DEFAULT_CAPACITY * sizeof(VectorP));
if(vector == NULL)
{
fprintf(stderr, "Memory allocation failed!\n");
exit(1);
}
(*vector).size = 0; //Does this change the size on the main function?
vector->items[0] = 1; // And this one too?
}
這是我的主要功能:
int main()
{
// Create a new vector ... check size
struct Vector vector;
VectorP v1 = &vector;
initVector(v1);
fprintf(stderr, "\nThe size is (0) %i\n", v1->size);
printf("items[0] = %i ", v1->items[0]);
}
的問題是功能initVector並沒有改變大小或項目。我將如何改變在主要創建的向量中的大小?