在linux下编译程序时,遇到以下错误:
stack smashing datected.Aborted(core dumped)
经排查,是由于对数组进行越界操作造成的,示例代码如下:
/ #define APP_DATA_SIZ 64
typedef struct {
appData[APP_DATA_SIZ ];
}receData;
memcpy(receData.appData, pSourceData, len);
当len > APP_DATA_SIZ 时,即报以上错误。
由此可见,用数组作为memcpy()的第一个参数是非常危险的,因为数组的长度是固定的,很容易造成越界。
stack smashing datected.Aborted(core dumped)
最新推荐文章于 2024-09-11 10:24:10 发布