【发布时间】:2012-12-06 02:53:31
【问题描述】:
我声明了一个数组:
char * words[1000] = {NULL};
现在我有一系列分叉的子进程将单词添加到该数组中,但它们不会影响父程序。我该如何改变呢?
【问题讨论】:
-
仅供参考,您的第一个代码块可以简化为
char* words[1000] = {NULL};,并且数组中的每个项目都将设置为NULL。 -
请不要再写这个:
words[i][strlen(words[i])] = '\0';。您已经知道字符串有多长(来自strlen(temp),请将 NUL 放在正确的位置。 -
嗯。这段代码对我来说是正确的:清除指针数组,然后每次你想放东西时,从头开始搜索,直到找到一个空指针,然后占据那个位置。所以,也许你每次放东西时都会运行你的初始化代码?还是您的单词数组被覆盖?最好是你发布你的整个程序。
-
"...because each day he gets farther away from the paint can."。除了扫描之外,您可能还需要考虑以某种方式跟踪表中孔的位置。
-
子进程和父进程有不同的地址空间,你必须做额外的工作让它们能够共享内存。 inter-process communication、shared memory 可能是你想要的。