c - C 中不兼容的 "for"循环

标签 c loops for-loop c99

我有一个包含以下函数的 C 库:

void arlist_del(struct _arlist *list, int position, int delit) {

if (position > list->size - 1)
    return;
if (list->size == 1) {
    arlist_clear(list);
    return;
}
if (delit)
    free(arlist_get(list, position));
for ( int i = position; i < list->size; ++i ) {  //line were error occur
    if (i == list->size - 1)
        list->data[i] = NULL;
    else
        list->data[i] = list->data[i + 1];
}
void ** new_data = realloc(list->data, arlist_getsizeof(list));
--list->size;
assert(new_data != NULL);
arlist_setdata(list, new_data, list->size, 0);
}

但是,我在代码中标识的行中收到错误“'for'循环初始声明仅允许在 C99 模式下”。我想知道如何解决此问题,我无法切换到 C99 模式。我无法声明“int i =position “在空行中,所以我不知道该怎么做。

谢谢

最佳答案

在 for 循环之外声明它。

int i;
for ( i = position; i < list->size; ++i )

关于c - C 中不兼容的 "for"循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33511260/

相关文章:

c - 用短整型数组填充的有效方法

c - 将共享库重新链接到不同版本的 libc

c 和 char 中的位移位

java - 确定 while 循环的迭代次数

loops - Vuejs v-for 使用 Array.prototype.reverse() 的无限更新循环

c - 在循环中创建的变量在 C 中的迭代期间更改值

c - C中的参数传递

arrays - Twig 循环索引到数组中

c - 奇怪的 for 循环条件

java - For 循环产生部分正确的结果