丁同亚的博客
夺朱非正色

栈空间会随着函数执行完而释放,空间里的值可能会被覆盖


#include <iostream>

void* Fun(int* a,int* b) {
	int c = *a + *b;

	return (void*) & c;

}
void overwriteStack() {
	int dummy[100] = { 0 }; // 故意占用栈空间
}
int main() {

	int* a;
	int* b;
	int aa = 2;
	int bb =4;

	a = &aa;
	b = &bb;
	int *c = (int*)Fun(a,b);
	overwriteStack();

	int cc = *c;//被覆盖了 0000
	return NULL;
}

 

posted on 2025-02-27 20:24  丁同亚的博客  阅读(10)  评论(0)    收藏  举报