我是C编程新手。谁能告诉我该如何对粗体字进行编码?
创建一个名为arrayData的结构,该结构包含一个名为array的整数指针和一个名为size的整数变量。
使用以下标头创建一个函数:arrayData * createArray(int size)。在此函数内,您将为新的arrayData结构分配空间。然后,您需要使用输入变量作为元素数创建一个数组。最后,您需要将malloc分配的arrayData指针中的变量设置为等于数组和数组大小。最后返回malloc的arrayData结构的指针。
我已经尝试过类似的东西:
#include<stdio.h>
struct arrayData
{
int *array;
int size;
}
struct arrayData* createArray(int size)
{
struct arrayData *str = (struct arrayData*)malloc(sizeof(struct arrayData));
int a = 10;
int arr[a];
for ( a = 0; a < 10; a++ )
{
str->arr[i] = a;
}
return str;
}
最佳答案
int arr[a];
在函数内部本地分配,并且在函数返回时将被销毁。您应该动态分配str->array
进行正确分配。
struct arrayData* createArray(int size)
{
struct arrayData *str = malloc(sizeof(struct arrayData));
int a = 10;
str->array = malloc(size * sizeof(int));
str->size = size;
for ( a = 0; a < 10; a++ )
{
str->array[i] = a;
}
return str;
}