我的c程序一直有问题。当尝试从多个线程插入数组时,我会随机(我会解释)运行到 Abort Traps 和 Seg。故障。
随机我的意思是它有时会运行到完成,有时我会得到双倍免费,偶尔我会得到赛格。故障。
void insertIntoFinalArray(char * string) {
sem_wait(&insert);
printf("%d\n", sem_getvalue(&insert, 0));
if (finalarray == NULL) finalarray = (char **) malloc(sizeof(char *));
else finalarray = (char **) realloc(finalarray, ((size_final + 1) * sizeof(char *)));
finalarray[size_final] = (char *) malloc(sizeof(string) + 1);
strcpy(finalarray[size_final], string);
//printf("%s\n", finalarray[size_final]);
size_final++;
sem_post(&insert);
}
最终数组被声明为全局变量char ** finalarray;