d**********1 发帖数: 37 | 1 char name[MAXPATHLEN];
能够保证有MAXPATHLEN bytes allocated吗? 如果没有available的内存,会出现什
么情况呢? |
O******i 发帖数: 269 | 2 栈空间是有限制的吧,用new才行。否则MAXPATHLEN太大,Visual Studio编译都会出错。
【在 d**********1 的大作中提到】 : char name[MAXPATHLEN]; : 能够保证有MAXPATHLEN bytes allocated吗? 如果没有available的内存,会出现什 : 么情况呢?
|
p*****2 发帖数: 21240 | 3
应该就overflow了吧?
【在 d**********1 的大作中提到】 : char name[MAXPATHLEN]; : 能够保证有MAXPATHLEN bytes allocated吗? 如果没有available的内存,会出现什 : 么情况呢?
|
d**********1 发帖数: 37 | 4 我知道动态alloc没有这样的问题,因为可以check分配成功与否
我遇到一个bug,内存中的连续15个bytes corrupted了,怀疑是这个静态申请的数组侵
犯了别人的内存。
这种overflow按照道理说在运行时应该报错,但是会不会不报错,而用了别人的地址呢 |
p*****2 发帖数: 21240 | 5
感觉不像这个原因。应该是其他问题。
【在 d**********1 的大作中提到】 : 我知道动态alloc没有这样的问题,因为可以check分配成功与否 : 我遇到一个bug,内存中的连续15个bytes corrupted了,怀疑是这个静态申请的数组侵 : 犯了别人的内存。 : 这种overflow按照道理说在运行时应该报错,但是会不会不报错,而用了别人的地址呢
|
O******i 发帖数: 269 | 6 你这个数组是函数外定义的全局变量?量还是函数里定义的局部变量?或者是静态变量?
MAXPATHLEN多大?如果比较小,应该是没有问题的。
你可以改为动态分配,看看这个bug还有没有
如果是局部变量,改为全局变量或者静态变量,看看结果如何
【在 d**********1 的大作中提到】 : 我知道动态alloc没有这样的问题,因为可以check分配成功与否 : 我遇到一个bug,内存中的连续15个bytes corrupted了,怀疑是这个静态申请的数组侵 : 犯了别人的内存。 : 这种overflow按照道理说在运行时应该报错,但是会不会不报错,而用了别人的地址呢
|