[英]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.