gpt4 book ai didi

c - 修改双指针而不使用memset

转载 作者:行者123 更新时间:2023-11-30 15:35:18 25 4
gpt4 key购买 nike

char **ARRAY;
char people[4][20];
shmid = shmget (shmkey, sizeof (people), 0644 | IPC_CREAT);
ARRAY = (char**) shmat (shmid, NULL, 0);

memcpy(ARRAY, "BOBBY1", sizeof("BOBBY1"));
memcpy(ARRAY + 20, "BOBBY2", sizeof("BOBBY2"));
memcpy(ARRAY + 2*20, "BOBBY3", sizeof("BOBBY3"));
memcpy(ARRAY + 3*20, "BOBBY4", sizeof("BOBBY4"));

所以我想知道如何在不使用 memcpy 的情况下修改此数组中的现有字符串?

这样做的原因是 **ARRAY 是进程之间共享的内存,我想使用信号量来控制访问(如果我正确理解 memcpy,它将允许进程访问当前的内存区域)由信号量锁定)。

最佳答案

C 相信您只会做安全的事情。没有办法让编译器强制执行“只有持有该信号量才能访问此 block ”之类的内容。

您记录所有要求(在源代码中),然后手动遵循契约(Contract)。

您使用什么功能并不重要。

关于c - 修改双指针而不使用memset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22977071/

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