Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 不使用memset修改双指针_C_Semaphore - Fatal编程技术网

C 不使用memset修改双指针

C 不使用memset修改双指针,c,semaphore,C,Semaphore,所以我想知道,如果不使用memcpy,如何修改这个数组中现有的字符串 原因是**数组是进程之间的共享内存,我想使用信号量来控制访问(如果我正确理解memcpy,它将允许进程访问当前被信号量锁定的内存区域)。C信任您只做安全的事情。没有办法让编译器强制执行“只有持有该信号量时才能访问该块”之类的内容 您记录所有需求(在源代码中),然后手动遵循合同 您使用什么功能并不重要 char **ARRAY; char people[4][20]; shmid = shmget (shmkey, sizeof

所以我想知道,如果不使用memcpy,如何修改这个数组中现有的字符串

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

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

您记录所有需求(在源代码中),然后手动遵循合同

您使用什么功能并不重要

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"));