【问题标题】:How can I write a code for the following C functions using structure, malloc and array?如何使用结构、malloc 和数组为以下 C 函数编写代码?
【发布时间】:2013-10-19 22:33:37
【问题描述】:

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

使用以下标头创建一个函数: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;
}

我还想做一些类似的事情: 使用以下标头创建一个函数:void printArray(arrayData *data)。此函数将打印出输入变量数组中的所有值。 输出将如下所示: 价值1 价值2 价值3 价值4

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

谁能告诉我该怎么做?

【问题讨论】:

  • 我想你会发现,如果你展示你到目前为止所拥有的东西,你会得到更多的帮助。你知道函数原型应该是什么样子,从那里开始。这听起来像是一个家庭作业问题,所以我猜你会有一些参考资料可供参考。

标签: c arrays pointers struct


【解决方案1】:

首先,数组的大小(大小)与将“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等。没有原型等。只需填写它们。

【讨论】:

    【解决方案2】:

    用于打印数组。

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

    免费

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-05
      • 2016-07-04
      • 2012-09-19
      • 2020-04-12
      • 2023-03-13
      相关资源
      最近更新 更多