【问题标题】:how to use append() in c? [closed]如何在 C 中使用 append()? [关闭]
【发布时间】:2022-11-22 23:30:34
【问题描述】:

我正在尝试将一个值的索引(如果它为 ==1)添加到 C 中的列表中。这甚至可能吗?我该怎么办?

这是我到目前为止的一般代码:

int ones[256];
    int index;
    for (index = 0; index < sizeof(input); i++) {
        if (input & 1 == 1) {
            
            count = count + 1;
        
            ones.append() = index;
        }

【问题讨论】:

  • C 中没有append。(并且在您的代码中没有列表。)如果要将值存储在数组中,您必须自己将其分配给正确的索引。如果你想增加数组的大小,这对于普通数组来说是根本不可能的。为此,您需要动态内存分配。
  • 什么是append()?你确定你标记了正确的语言吗?
  • if 测试 input 是否为奇数,而不是是否为 1。

标签: c append


【解决方案1】:

你必须自己实现追加。您可能希望使用跟踪长度和元素的数组结构来包装该实现(您可以选择跟踪容量和过度分配)。一个基本的模型看起来像this

#include <stdio.h>
#include <stdlib.h>

void append(int** array, size_t* length, int element) {
    *array = (int*) realloc(*array, 1 + *length);
    (*array)[*length] = element;
    *length += 1;
}

void print(int* array, size_t len) {
    printf("Array(%lu): ", len);
    for (size_t i = 0; i < len; i++) {
        printf("%d ", array[i]);
    }
    printf("
");
}

int main() {
    int* array = (int*)malloc(0);
    size_t len = 0;
    print(array, len);
    append(&array, &len, 0);
    append(&array, &len, 1);
    append(&array, &len, 2);
    print(array, len);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2020-03-21
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多