我刚刚开始 C 阅读手册页,但找不到正确的答案。所以代码如下
void *p = malloc(10*sizeof(int));
int *q = p;
int NUMOFINT = 10;
for (int i = 0; i < NUMOFINT; i++){
printf("%i ", q[i]);
}
void *realloc(void *p, 20*sizeof(int));
for (int i = 0; i < 21; i++){
printf("%i ", q[i]);
它给出了这个错误:
malloc.c: In function ‘main’:
malloc.c:31:24: error: expected declaration specifiers or ‘...’ before numeric constant
我不太明白大小格式对于 realloc 是可以的,malloc()
但对于 realloc 是不行的。那么我该如何纠正错误呢?
编辑:
所以当我把它变成:
void *morep = realloc(p, 20*sizeof(int));
int *q2 = morep;
for (int i = 0; i < 20; i++){
printf("%i ", q2[i]);
}
它打印q2[11]
为135121