|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
现在我有一个新的问题了
我在 main 里面不是生成了一个 array 嘛, 有没有什么办法对 array 进行 deepcopy,就是类似于 python 里面的切片.因为我接下来想在不破坏原有 array 的情况下,对 deepcopy 出来的 array 进行修改
我的代码是用来生成一个随机 double 数组的,然后想要用多种不同的排序方法对生成的数组进行排序,所以得重复使用生成出来的那个原始的 array
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- double *generate_array(int value) {
- double *array = malloc(sizeof(double) * value);
- for (int i = 0; i < value; i++){
- array[i] = (double)rand() / RAND_MAX;
- }
- return array;
- }
- int main()
- {
- srand(time(NULL));
- size_t array_length = 10;
- double *array = generate_array(array_length);
- for (size_t i = 0; i < array_length; i++){
- printf("%lf\n", array[i]);
- }
- free(array);
- return 0;
- }
复制代码
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- double *generate_array(int value) {
- double *array = malloc(sizeof(double) * value);
- for (int i = 0; i < value; i++){
- array[i] = (double)rand() / RAND_MAX;
- }
- return array;
- }
- double *clone_array(double *array, size_t size) {
- double *new_array = malloc(sizeof(double) * size);
- for(size_t i = 0; i < size; ++i) {
- new_array[i] = array[i];
- }
- return new_array;
- }
- int main()
- {
- srand(time(NULL));
- size_t array_length = 10;
- double *array = generate_array(array_length);
- double *new_array = clone_array(array, array_length);
- new_array[3] = 0;
- for (size_t i = 0; i < array_length; i++){
- printf("%lf\n", array[i]);
- }
- printf("\n");
- for (size_t i = 0; i < array_length; i++){
- printf("%lf\n", new_array[i]);
- }
- free(new_array);
- free(array);
- return 0;
- }
复制代码
|
|