我对某事感到非常困惑。我有一个循环,它从子进程读回值并将它们插入到 char 数组中(称为 sleepTime)。我得到了正确的值(我在将它们放入我的 char 数组后立即在控制台中显示它们)但是当循环读取下一个值时,数组中的所有内容都会更新为从管道读回的当前值。退出循环后,我再次打印结果,数组的每个元素都是最后读取的值。任何人都可以阐明这一点吗?我很困惑。
char* sleepTime[4];
char randNumSend[15];
char randNumRet[15];
for (int i=0; i<nWorkers; i++){ // loop to read back values from child process
read(pipe2[0],randNumRet,strlen(randNumSend)); // read back data
sleepTime[i]=randNumRet; // save values as string for execlp command
cout << "sleepTime" << i+1 << ": " << sleepTime[i]<< endl;
}
close(pipe2[0]); // close read end of pipe2
for (int i =0; i<nWorkers; i++){
cout << "sleepTime" << i+1 << ": " << sleepTime[i]<< endl;
}