簡體   English   中英

如何使用結構,malloc和數組為以下C函數編寫代碼?

[英]How can I write a code for the following C functions using structure, malloc and array?

創建一個名為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)。 此函數將打印出輸入變量數組中的所有值。 輸出將如下所示:value1 value2 value3 value4

使用以下標頭創建一個函數:void freeMem(arrayData * data)。 在此函數中,您將釋放所有已分配的內存。

誰能告訴我該怎么做?

用於打印陣列。

  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);
   }

首先,數組的大小(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等。沒有原型等。只需填寫即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM