【发布时间】:2015-12-07 19:55:03
【问题描述】:
我正在尝试在我的 C 堆栈中实现一个动态数组,但是我有点困惑 char malloc 是如何工作的,它会在创建后立即插入垃圾数据。
这里是用于初始化数组和压入元素的代码。
typedef struct {
char *array;
int used;
int size;
} Array;
void initArray(Array *a, int initialSize) {
a->array = (char *)malloc(initialSize * sizeof(char)+1);
a->used = 0;
a->size = initialSize;
}
void pushArray(Array *a, int element) {
if (a->used == a->size) {
a->size +=1;
a->array = (char *)realloc(a->array, a->size * sizeof(char));
}
a->array[a->used++] = element;
}
这是我初始化并将元素推入数组的主要 sn-p
int main()
{
Array a;
int i=0;
initArray(&a,0);
char choice='a';
char exp[100]="";
printf("Please enter an expression\n");
scanf("%s",exp);
for (i=0;i<strlen(exp);i++){
pushArray(&a,exp[i]);
}
【问题讨论】:
标签: c arrays pointers malloc dynamic-arrays