是否存在内存损坏或段故障的可能性?

时间:2013-06-24 12:44:34

标签: c memory memory-management segmentation-fault memory-corruption

假设我有以下C函数

void *AllocateMemory(int numBytes)
{

     //allocate "numBytes" of memory

     //return the memory address
}

如果通过如此多的进程(如100并行)访问上述函数,是否存在内存损坏或段错误的可能性?

注意:环境是多线程的。

2 个答案:

答案 0 :(得分:2)

不要混淆进程和线程。

通过流程,根本不会发生任何事情。

使用线程,如果您的函数直接工作并且不接触或使用任何共享资源,它也应该可以正常工作。

答案 1 :(得分:1)

所有进程都有自己的地址空间,因此多个进程不是问题。

对于线程,答案是它取决于您的malloc()实现。

我遇到的最常见的实现是线程安全的。有关详细信息,请参阅此问题

Is malloc thread-safe?