This commit is contained in:
B Kleinen
2012-04-19 10:28:08 +02:00
parent 17153d6685
commit 34c61054e6
2 changed files with 35 additions and 1 deletions

Binary file not shown.

View File

@@ -11,10 +11,44 @@
void aboutPointers(){ void aboutPointers(){
int i = 5; int i = 5;
int *i_pointer = &i; int *i_pointer = &i;
expectThat("pointers contain memory addresses - they are a reference to the variable",_____,*i_pointer); int* i_pointer2 = &i;
expectThat("pointers contain memory addresses - they are a reference to the variable",5,*i_pointer);
expectThatNot("pointers are thus different from the value they are pointing to",5,i_pointer);
*i_pointer = 6;
expectThat("now the value of i has changed",6,i);
}
void aboutAssignmentCompatibility(){
int *pInt, i=5;
double *pDouble;
pInt = &i;
// pDouble = (int*)pInt; does not compile in Visual Studio
}
void aboutDynamicAllocation(){
int *p;
p = new int;
*p = 5000;
expectThatNot("what's in the pointer now?",0,p);
delete p;
// *p = 6000; this produces a crash / Access Violation
}
void aboutPointersAndArrays(){
int number = 10;
char* p = new char[number];
char defaultChar = 'x';
for (int i=0;i<number;i++){
*p = defaultChar;
p++;
}
for (int i=0;i<number;i++){
expectThat("now the defaultChar should be in every cell #"+i,defaultChar,p[i]);
}
} }
void AboutPointers::meditate(){ void AboutPointers::meditate(){
aboutPointers(); aboutPointers();
aboutAssignmentCompatibility();
aboutDynamicAllocation();
aboutPointersAndArrays();
} }