2013-10-19 28 views
0

創建一個名爲arrayData的結構,該結構包含一個名爲array的整型指針和一個稱爲size的整型變量。如何使用structure,malloc和array爲以下C函數編寫代碼?

使用以下頭文件創建函數:arrayData * createArray(int size)。在這個函數內部,你將爲malloc空間創建一個新的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 *數據)。該函數將輸出輸入變量數組中的所有值。 的outpu將如下所示: VALUE1 VALUE2 值3 VALUE4

創建一個與下面的頭函數:void freemem在(arrayData *數據)。在這個函數中,你將釋放所有已經被malloc化的內存。

誰能告訴我我該怎麼做?

+0

我想你會發現,你會得到如果您顯示目前爲止的內容,可獲得更多幫助。你知道函數原型應該是什麼樣子,從那裏開始。這聽起來像一個家庭作業問題,所以我猜你會有一些參考諮詢。 – Casey

回答

0

用於打印陣列。

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

首先,陣列(尺寸)的大小不與「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); 
} 

我沒宣佈我等沒有原型等只需填寫他們。

相關問題