Click here to Skip to main content
15,887,471 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Detect if pointer points to the stack or the heap [modified] Pin
Naveen16-Apr-08 23:13
Naveen16-Apr-08 23:13 
GeneralRe: Detect if pointer points to the stack or the heap Pin
Cedric Moonen16-Apr-08 23:25
Cedric Moonen16-Apr-08 23:25 
GeneralRe: Detect if pointer points to the stack or the heap Pin
piul16-Apr-08 23:36
piul16-Apr-08 23:36 
GeneralRe: Detect if pointer points to the stack or the heap Pin
CPallini16-Apr-08 23:53
mveCPallini16-Apr-08 23:53 
GeneralRe: Detect if pointer points to the stack or the heap Pin
Moak17-Apr-08 0:20
Moak17-Apr-08 0:20 
GeneralRe: Detect if pointer points to the stack or the heap Pin
James R. Twine17-Apr-08 8:05
James R. Twine17-Apr-08 8:05 
GeneralRe: Detect if pointer points to the stack or the heap Pin
Naveen17-Apr-08 14:03
Naveen17-Apr-08 14:03 
GeneralRe: Detect if pointer points to the stack or the heap Pin
Stephen Hewitt17-Apr-08 15:20
Stephen Hewitt17-Apr-08 15:20 
It's a strange question. But here's how it can be done:

// IsOnStack.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
 
bool IsOnStack(const void *pData)
{
	DWORD StackBase;
	DWORD StackLimit;
	__asm 
	{
		MOV EAX, DWORD PTR FS:[0x04]
		MOV StackBase, EAX
		MOV EAX, DWORD PTR FS:[0x08]
		MOV StackLimit, EAX
	}
 
	DWORD Address = reinterpret_cast<DWORD>(pData);
 
	return (Address >= StackLimit) && (Address < StackBase);
}
 
const char* PrintStack(const void *pData)
{
	return IsOnStack(pData) ? ": Stack" : ": Not on Stack";
}
 
int main(int argc, char* argv[])
{
	const char *pString1 = "String1";
	cout << pString1 << PrintStack(pString1) << endl;
 
	char String2[] = "String2";
	cout << String2 << PrintStack(String2) << endl;
 
	return 0;
}


Output is:
String1: Not on Stack
String2: Stack


Steve

GeneralGet ProjectName at compiletime Pin
hansipet16-Apr-08 20:43
hansipet16-Apr-08 20:43 
GeneralRe: Get ProjectName at compiletime Pin
Hamid_RT16-Apr-08 20:46
Hamid_RT16-Apr-08 20:46 
AnswerRe: Get ProjectName at compiletime Pin
Rajkumar R16-Apr-08 21:45
Rajkumar R16-Apr-08 21:45 
GeneralRe: Get ProjectName at compiletime Pin
CPallini16-Apr-08 23:40
mveCPallini16-Apr-08 23:40 
GeneralCalculating System measurements in MFC Pin
nisha0000016-Apr-08 17:16
nisha0000016-Apr-08 17:16 
GeneralRe: Calculating System measurements in MFC Pin
_AnsHUMAN_ 16-Apr-08 18:12
_AnsHUMAN_ 16-Apr-08 18:12 
GeneralRe: Calculating System measurements in MFC Pin
nisha0000016-Apr-08 18:36
nisha0000016-Apr-08 18:36 
GeneralRe: Calculating System measurements in MFC Pin
Maruf Maniruzzaman16-Apr-08 19:00
Maruf Maniruzzaman16-Apr-08 19:00 
QuestionRe: Calculating System measurements in MFC Pin
Rajesh R Subramanian16-Apr-08 19:29
professionalRajesh R Subramanian16-Apr-08 19:29 
GeneralRe: Calculating System measurements in MFC Pin
Hamid_RT16-Apr-08 19:31
Hamid_RT16-Apr-08 19:31 
GeneralRe: Calculating System measurements in MFC Pin
nisha0000016-Apr-08 19:54
nisha0000016-Apr-08 19:54 
GeneralRe: Calculating System measurements in MFC Pin
Hamid_RT16-Apr-08 20:50
Hamid_RT16-Apr-08 20:50 
GeneralSaving to an Outfile Pin
dajones0516-Apr-08 16:27
dajones0516-Apr-08 16:27 
GeneralRe: Saving to an Outfile Pin
Christian Graus16-Apr-08 17:57
protectorChristian Graus16-Apr-08 17:57 
GeneralRe: Saving to an Outfile Pin
Hamid_RT16-Apr-08 19:32
Hamid_RT16-Apr-08 19:32 
GeneralRe: Saving to an Outfile Pin
Rajesh R Subramanian16-Apr-08 19:33
professionalRajesh R Subramanian16-Apr-08 19:33 
QuestionRe: Saving to an Outfile Pin
David Crow17-Apr-08 4:06
David Crow17-Apr-08 4:06 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.