我正在编写一个接收数字l的方法,并返回一个带有随机数的大小为l的向量.我有这个代码,但不起作用
#include <time.h>
int makea (int z) {
int a1[z];
int i;
for (i = 0; i < tam; i++) {
a1[i]=srand(time(0));
}
return a1;
}
Run Code Online (Sandbox Code Playgroud)
这些是编译器返回的错误
arrays1.c:在函数'makea'中:
arrays1.c:12:错误:void值不被忽略,因为它应该是
arrays1.c:14:warning:return使用指针生成整数而不使用
强制转换array1.c:14:warning :function返回局部变量的地址
我认为这是指针的问题......但我不太确定
一些问题:
因此,要修复,请使用malloc和指针:
int *makea (int z) {
int *a1 = malloc(sizeof(int) * z);
int i;
srand(time(NULL));
for (i = 0; i < tam; i++) {
a1[i]= rand();
}
// remember to free a1 when you are done!
return a1;
}
Run Code Online (Sandbox Code Playgroud)
另请注意,使用malloc 有时基本上可以免费授予您"随机数"场景,从而无需循环遍历元素,因为从malloc返回的值是垃圾(因此是随机数).
但是,请注意malloc是特定于实现的,这意味着实现理论上可以在返回之前为您清除内存.
| 归档时间: |
|
| 查看次数: |
3173 次 |
| 最近记录: |