
请教C/C++高手们一个问题。函数返回一个指针来指向动态分配的50个浮点数组元素
#include<iostream>#include<stdlib.h>usingnamespacestd;//函数返回一个指针来指向动态分配的50个浮点数组元素。flo...
#include <iostream>
#include <stdlib.h>
using namespace std;
//函数返回一个指针来指向动态分配的50个浮点数组元素。
float *get_mem(void)
{
float *ptr;
ptr=calloc(50,sizeof(float));
//error C2440: '=' : cannot convert from 'void *' to 'float *'
//书上是这样写的,可是这样明明不行。把float改为void吧,又失去了程序的本意。
//改成ptr=new float (50);可以运行,但不知道对不对。
if(!ptr)
{
cout<<"Allocation error\n";
exit(1);
}
return ptr;
}
int main()
{
get_mem();
return 0;
} 展开
#include <stdlib.h>
using namespace std;
//函数返回一个指针来指向动态分配的50个浮点数组元素。
float *get_mem(void)
{
float *ptr;
ptr=calloc(50,sizeof(float));
//error C2440: '=' : cannot convert from 'void *' to 'float *'
//书上是这样写的,可是这样明明不行。把float改为void吧,又失去了程序的本意。
//改成ptr=new float (50);可以运行,但不知道对不对。
if(!ptr)
{
cout<<"Allocation error\n";
exit(1);
}
return ptr;
}
int main()
{
get_mem();
return 0;
} 展开
展开全部
ptr=(float *)calloc(50,sizeof(float));强制转换
ptr=new float[50];可以
ptr=new float[50];可以
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询