使用memset方式给数组赋值,并将数组作为输出参数的C语言实例
时间: 2023-10-01 13:09:59 浏览: 159
下面是一个示例代码,演示如何使用memset函数给数组赋值,并将数组作为输出参数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void create_array(int **arr, int size, int value) {
*arr = (int*) malloc(size * sizeof(int));
memset(*arr, value, size * sizeof(int));
}
int main() {
int *arr;
int size = 5;
int value = 3;
create_array(&arr, size, value);
printf("The array is: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr);
return 0;
}
```
在这个示例中,我们定义了一个名为create_array的函数,它有三个参数:arr,size和value。第一个参数是一个指向指针的指针,它用于将数组返回给调用者。第二个参数是一个整数,它表示数组的大小。第三个参数是一个整数,它表示要用来初始化数组的值。
在create_array函数中,我们首先通过调用malloc函数分配了一个大小为size * sizeof(int)的内存块,并将其地址存储在arr指针变量中。接着,我们使用memset函数将整个内存块的值都设置为value。这样,我们就完成了对数组的初始化。
在main函数中,我们定义了三个变量:arr、size和value。我们通过调用create_array函数来创建一个大小为size的数组,并将数组的所有元素初始化为value。在调用create_array函数时,我们使用&arr的方式将arr变量的地址传递给函数,这样create_array函数就可以将数组的地址存储在arr变量中。
最后,我们使用for循环遍历数组的所有元素,并使用printf函数将它们输出到控制台上。注意,在输出数组元素的值时,我们使用%d占位符,因为数组的元素是整数类型的。最后,我们使用free函数释放了由malloc函数分配的内存块。
阅读全文