【发布时间】:2012-04-07 10:57:24
【问题描述】:
我想(或需要)做一些类似的事情
char **my_array = malloc(1000*64);
strcpy(arr[0], "test");
虽然我知道 arr[0] 没有指向单独的分配内存,但我认为应该能够像这样将字符串复制到其中(但它是分段的)。这行得通
arr[0] = "test";
但是这行不通,因为我的实际目标是在共享内存中执行此操作。
shm_array = shmget(IPC_PRIVATE, 1000 * 64, IPC_CREAT | 0644);
my_array = (char**) shmat(shm_array, (void**)0, 0);
实际上我的问题可以改写为:“如何在共享内存中创建字符串数组?”。我尝试创建 1000 个单独的“字符串”共享内存段,但除此之外它不起作用,它似乎也是错误的。此外,我认为应该可以简单地使用相对指针偏移量写入一个大的共享内存段。
【问题讨论】:
标签: c shared-memory arrays