c - 如何使用结构体、malloc 和数组为以下 C 函数编写代码?

标签 c arrays pointers struct

创建一个名为 arrayData 的结构,其中包含一个名为 array 的整数指针和一个名为 size 的整数变量。

创建一个具有以下 header 的函数:arrayData* createArray(int size)。在此函数内,您将为新的 arrayData 结构分配空间。然后,您需要使用输入变量作为元素数量来创建一个数组。最后,您需要将 malloc 后的 arrayData 指针中的变量设置为等于数组和数组大小。最后返回malloc后的arrayData结构的指针。

以下是上述术语的代码:

struct arrayData
{
    int *array;
    int size;

};


struct arrayData* createArray(int size)
{
    struct arrayData *str = (struct arrayData*)malloc(sizeof(struct arrayData));
    int a = 10;
    str->array = (int*)malloc(size * sizeof(int));
    str->size = size;
    for ( a = 0; a < 10; a++ )
    {
        str->array[i] = a; 
    }
    return str;
}

我补充说我想做一些类似的事情: 创建一个具有以下 header 的函数:void printArray(arrayData *data)。该函数将打印出输入变量数组中的所有值。 输出将如下所示: 值1 值2 值3 值4

创建一个具有以下 header 的函数:void freeMem(arrayData *data)。在此函数中,您将释放所有已分配的内存。

谁能告诉我该怎么做?

最佳答案

首先,数组的大小(size)与将“a”值存储到数组中无关。 (尚不清楚<尺寸。)

printArray(arrayData *data) {  
    for (i = 0; i < data->size; i++) {  
        printf("%d ", data->array[i]);  
    }  
    printf("\n");  
}  

freeMem(arrayData *data) {  
    free(data->array);  
    free(data);  
}

我还没有声明i等,没有原型(prototype)等,填写即可。

关于c - 如何使用结构体、malloc 和数组为以下 C 函数编写代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19471887/

相关文章:

c - 如何将 char* 指针分配给 c 中的 char 变量

java - 字符串的两半就地交错

c - 绑定(bind)生命周期如何可以比对象生命周期长?

java - 从静态列表java中选择前N个元素

javascript - 在一个变量中定义多个类,然后检索它们

javascript - 过滤两个不同的结构化数组下划线js

c - 指向给出不兼容指针类型警告的数组的指针

c - fstat 返回 0 文件大小

c - malloc 和 free 具有动态变化的结构

c++ - 类析构函数中的错误