【发布时间】:2010-09-20 12:05:17
【问题描述】:
为什么下面的代码不起作用?
它编译得很好,但是如果我使用* 编写f,则输出类似于地址,如果我编写f 而不使用*,则输出为0。
#include <iostream>
#include<cstring>
using namespace std;
using std::size_t;
int *f(size_t s){
int *ret=new int[s];
for (size_t a=0;a<s;a++)
ret[a]=a;
return ret;
}
int main(){
size_t s=20;
cout<<*f(s)<<endl;
return 0;
}
【问题讨论】:
-
它应该做什么?
-
你已经在这里问了十几个问题,还不知道如何格式化代码?是什么让您无法看到编辑框旁边的提示?
-
为什么你认为这不起作用?据我所知,它应该工作得很好。
-
...当然,您发布的代码存在堆内存泄漏(因为您从未
delete[]),但我怀疑这是您最不关心的问题。