簡體   English   中英

修改沒有指針的雙指針

[英]modifying double pointer without memset

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,它將允許進程訪問當前由a鎖定的內存區域。信號)。

C相信您只會做安全的事。 無法使編譯器強制執行類似“僅當您持有該信號量時才能訪問此塊”之類的方法。

您記錄所有要求(在源中),然后手動遵守合同。

您為此使用什么功能都沒有關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM