gpt4 book ai didi

c - 使用 memset 初始化浮点型数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:08 26 4
gpt4 key购买 nike

我有一个指针float *ptr,动态分配长度n后,我想用零或一初始化这个数组,所以我使用memset (ptr,0,n*sizeof(float))memset(ptr,1,n*sizeof(float))。这是合法的吗?因为memset的第二个参数是int类型,恐怕不能应用于float类型。

最佳答案

memset(ptr,1,n*sizeof(float)). Is this legal?

不,不是将 float 的值设置为 1.0f 作为 float 的编码而不是字节 1,1,1,1 @James Picone


memset(ptr,0,n*sizeof(float)) 或更好的memset(ptr, 0, sizeof *ptr * n) 会将每个字节设置为 0 . 这当然是 float 0.0f 的编码。

要将 float 数组的每个元素设置为 1.0f 或任何值,只需使用循环即可。

float init_value = 1.0f;
for (size_t i = 0; i < n; n++) {
ptr[i] = init_value;
}

关于c - 使用 memset 初始化浮点型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51053705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com