比如
struct class{
int data[100];
};
怎么给data数组动态分配内存?用malloc()或calloc()函数。
看一下我的代码,我还有一些问题。@qq_37908402 @u013078580
还有
两段代码都出错了(函数里参数不同),一个直接报错,一个出结果了报错。我对函数之间调用一直有疑问。
当你用结构体的名字去去实例化一个对象的时候,里面的data数组就会被分配内存了,如果用new关键字或者malloc函数的时候就会在堆上分配内存。
我按照你的结构写了一下(哪个struct 后面的class不能当作结构体类型名的,会与官关键字冲突)
#include
using namespace std;
struct ClassName{
int data[100];
};
int main()
{
//用new关键字
ClassName* objectName = new ClassName;
//用malloc函数
//ClassName* objectName = (ClassName*)malloc(sizeof(ClassName));
for (int i = 0; i < 100; i++)
{
objectName->data[i] = i;
}
return 0;
}
data = (int*)malloc(100*sizeof(int));//为数组的行开辟空间
其中100为长度 你可以用变量代替
int chang=100;
data= (int*)malloc(chang*sizeof(int));
free(data);//释放申请的空间
stdlib.h这个是malloc的头文件