腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
为什么
C
11中没有
对齐
的calloc
、
、
、
、
C
11标准添加了aligned_alloc函数来分配未初始化的
对齐
内存
。该标准还包括用于分配
内存
的calloc函数,该函数被初始化为零,但仅将其与最大类型的大小
对齐
。为什么
C
11标准不包含一个分配初始化为零的
对齐
内存
的aligned_calloc函数?我知道您只需memset结果即可获得初始化
内存
,但calloc函数在某些操作系统上非常有用,因为出于安全原因,内核提供的
内存
通常必须已经为零初始化(并与页面大小
浏览 29
提问于2014-04-16
得票数 19
回答已采纳
3
回答
无锁算法的指针
对齐
、
、
、
当使用calloc时,指向新分配的
内存
的指针
对齐
到至少一定数量的最低有效位,这意味着最低有效位(作为标记指针)可用于无锁算法,并且实际上通常用于这些算法。我在
linux
ubuntu服务器上测试
内存
管理功能( x86_64 GNU/
Linux
,3.10.23-xxxx-std-ipv6-64-vps),从我的实验来看,4个最低有效位似乎被设置为0。根据我所读到的,它指出指针
对齐
是以这样的方式形成的,即表示为uintptr的指针将被4除以(
对齐
到2个最低有效位)
浏览 3
提问于2015-06-08
得票数 2
6
回答
如何分配16byte
内存
对齐
的数据
、
、
、
我正在尝试在一段代码上实现SSE向量化,我需要我的1D数组与16字节的
内存
对齐
。然而,我尝试了几种方法来分配16字节
内存
对齐
的数据,但最终都是4字节
内存
对齐
。 &A[5] = 0x11fe024 &A[7] = 0x11fe02
c
&A[9]0x11fe05
c
浏览 0
提问于2012-06-18
得票数 12
回答已采纳
1
回答
非
对齐
存储器存取
、
、
、
我正在使用
C
语言中的
内存
地址,并对这个名为“非
对齐
内存
访问”的主题感到好奇。我目前使用的是带有
Linux
内核的x86 Intel,但本着arch和OS不可知论的精神问这个话题,下面是而不是
Linux
和HW特定的主题: 默认情况下,CPU是否有
对齐
检查,但是内核检测到off是受支持的,并指示它不要检查。由于内核,至少我在其他HW上
浏览 0
提问于2013-10-14
得票数 2
回答已采纳
1
回答
realloc是否保持posix_memalign的
内存
对齐
?
、
、
、
对齐
malloc是posix_memalign,没关系,但是
对齐
realloc呢?realloc是否保留
对齐
,或者如何确保重新分配的
内存
具有相同的
对齐
方式?假设
Linux
和x86_64。
浏览 4
提问于2012-01-31
得票数 23
回答已采纳
1
回答
在一些UNIX实现中,不可能在通过memalign()分配的
内存
块上调用free()
、
、
我只使用
Linux
,但我想了解这意味着什么:使用memalign()或posix_memalign()分配的
内存
块应该用free()来释放。在某些UNIX实现中,不可能在通过memalign()分配的
内存
块上调用D5,因为memalign()实现使用malloc()分配
内存
块,然后返回指向该块中具有适当
对齐
方式的地址的指针。来自man memalign: POSIX要求可以使用posix_memalign()释放从free(3)获得的
内存
。有
浏览 0
提问于2022-08-27
得票数 1
回答已采纳
4
回答
关于
内存
对齐
,malloc做了哪些保证?
、
、
我偶然发现了以下代码:{ char *B=(char *)malloc(10); printf("\n%d",A); printf("\t%d\n",
C
); return 0;
浏览 7
提问于2011-12-20
得票数 21
回答已采纳
1
回答
新操作符的
C
++
对齐
,有多重要?
、
据我理解,64位
linux
系统上的指针大小为8字节,
对齐
的要求应该是8字节
对齐
。如果是这样,那么为什么新运算符返回16字节(可能是32,但这个数字大于8)
对齐
指针又有什么关系呢?简单的调用,例如{} SimpleChar*
c
1 = new SimpleChar; 将分配32个字节,每个指针是
对齐</
浏览 1
提问于2018-02-07
得票数 2
1
回答
如何在JNA和
C
之间
对齐
内存
、
、
、
我需要在
linux
环境中提供一个带有O_DIRECT标志的直接读操作。当前读取操作似乎失败,因为缓冲区
内存
未
对齐
。如何
对齐
缓冲
内存
?我已经尝试过了: native public int
浏览 31
提问于2020-11-17
得票数 0
5
回答
在
C
++中,结构是如何在
内存
中布局的?
、
、
、
、
C
++结构的布局方式是由标准设置的吗,或者至少在编译器中是通用的? 我有一个结构,其中一个成员需要在16字节的边界上
对齐
,如果我能保证字段的顺序,这会更容易。
浏览 0
提问于2010-08-11
得票数 9
回答已采纳
1
回答
YASM: vmovaps指令导致分割错误
、
、
、
、
指令vmovaps应该将
对齐
浮点值的向量(32位)移动到指定的ymm寄存器中.我也看过这个。然而,我不能真正地将他的问题的答案应用于我的问题(与他的内联程序集有关)。
浏览 0
提问于2019-02-05
得票数 1
回答已采纳
1
回答
如何索引堆分配
、
、
我试图像数组一样索引由ob堆栈分配的
内存
,但我不知道我是否能够做到这一点。它似乎分配了最小的16字节,并且总是16字节的倍数。我可能只是不太明白这些东西是怎么工作的。obstack_init(&ob_stack); double b = 24.0; double *pc = obstack
浏览 4
提问于2015-09-14
得票数 2
回答已采纳
1
回答
联合的地址
对齐
、
我对联合的
内存
地址分配有点困惑。char state[x]; int index;我们在编写代码时使用几个
对齐
规则,例如:double 4 bit for
linux
对于这些条件,“联合将如何
对齐
”;如果平台
linux
程序集x86 64位 注意:如果你有更好的意见,
浏览 2
提问于2011-11-02
得票数 0
回答已采纳
2
回答
在
C
++中声明、操作和访问未
对齐
内存
、
、
、
我经常听说“
对齐
内存
访问比非
对齐
访问要有效得多”,但实际上我不确定什么是非
对齐
内存
。因此: 是否有一种使用定义的行为方法操作未
对齐
内存
的方法,或者在
C
++中所有这些都依赖于平台/未定义的行为?
浏览 0
提问于2016-10-07
得票数 1
回答已采纳
1
回答
linux
内核中不同类型的非
对齐
访问
、
、
Linux
为非
对齐
访问提供了两种类型的宏:byteshift和memmoves。asm-泛型的,它似乎是非
对齐
访问的最一般的实现,总是只包括byteshift:尽管我简单的基准测试表明,memmove通常更有效一些。我也找不到在
linux
内核中使用未
对齐
内存
迁移的任何实际示例。有比记忆更有效的平台吗? 为什么没有使用memcpy而不是memmove的实现?
浏览 1
提问于2018-09-14
得票数 0
回答已采纳
3
回答
为什么struct中的双成员没有在8字节边界上
对齐
?
、
这是关于
内存
对齐
的。在下面的代码中,我预计结构中b的偏移量是8(32位机器)。参见。至此,使b始终发生在高速缓存线内。然而,事实并非如此。struct test1的全局对象中的成员b似乎是
对齐
的。输出结果是...offset of b 4 address of b (on heap) = 0x804a07
c
,
浏览 2
提问于2013-02-15
得票数 5
回答已采纳
4
回答
什么是
对齐
内存
分配?
、
我还想知道glibc malloc()是否能做到这一点。
浏览 0
提问于2010-10-22
得票数 23
回答已采纳
3
回答
如何获得大
对齐
块?
、
、
为了避免维护复杂的数据结构,我希望使用相当大的
对齐
方式分配块(例如,一些of,可能是of,总是以2的功率分配)。这允许我隐藏指针的较低位,以便轻松检索它所指向的块开头的地址。我想要一种方法来保证这样一个块的分配与指定的
对齐
,例如。使用4096字节
对齐
方式分配4096字节块。为了使方法工作,
对齐
将始终是块的大小,因此从长远来看,
内存
浪费是一个需要考虑的问题。我正在使用
C
++ (所以
C
和
C
++技术很好),任何解决方案都应该在普通桌面环境中移植。如果没有可移
浏览 5
提问于2012-01-14
得票数 9
回答已采纳
4
回答
禁止x86/x86_64上未
对齐
的
内存
访问
、
、
、
我想在x86/x86_64上模拟禁止未
对齐
内存
访问的系统。有没有什么调试工具或特殊模式可以做到这一点?在使用为SPARC或其他类似CPU设计的软件(
C
/
C
++)时,我希望在几台x86/x86_64 PC上运行许多(CPU密集型)测试。但我对Sparc的访问是有限的。据我所知,Sparc总是检查
内存
读取和写入的
对齐
情况(从任何地址读取一个字节,但只有在地址可被4整除时才允许读取4字节的字)。 可能是Valgrind或PIN有这样的模式?或者编译器的特殊模式?我
浏览 0
提问于2012-08-07
得票数 15
回答已采纳
1
回答
Raspberry PI版本1没有检测到未
对齐
的访问。
、
、
为了修复执行未
对齐
内存
访问的Redis的某些代码路径(由于Redis 3.2中引入的更改),我试图迫使PI记录未
对齐
内存
访问的消息,或者在发生这种情况时向进程发送信号。ARM v6 ( PI v1中使用的)显然能够处理未
对齐
的
内存
访问,因此如果我使用以下命令配置
Linux
以便向执行未
对齐
访问的进程发送信号:然后运行以下程序如果是这样的话,如何强制PI版本1在
浏览 2
提问于2017-02-17
得票数 3
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
内存对齐(C+)
Netty源码解析 -- 内存对齐类SizeClasses
图解|Linux内存碎片整理
Linux内存映射mmap原理分析
c语言-malloc分配内存
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
云直播
活动推荐
运营活动
广告
关闭
领券